![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() |
AntonTatu |
![]()
Сообщение
#1
|
Студент ![]() Группа: Участник Сообщений: 48 Регистрация: 27.11.2008 Пользователь №: 437 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Всем привет !
Вопрос в следующем, имеется прога которая генерирует некоторую формулу (формула меняет количество своих параметров в зависимости от исходных значений в программе ), в этой же проге есть массив который использует полученную формулу в дальнейших расчетах, хочется создать из формулы dll ку и потом ее вызывать в нужном месте программы, как это сделать? С вызовом полученной dll я вроде бы разобрался, а вот как научить прогу генерить dll ку понять не могу. ЗЫ: Какие можно использовать компилятор/линковщик (минимум занимаемого места, требуемых для работы файлов, потдержка STL требуется) Выручайте ! ![]() |
|
|
![]() |
BRE |
![]()
Сообщение
#2
|
![]() Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1112 Регистрация: 6.3.2009 Из: Ростов-на-Дону Пользователь №: 591 Спасибо сказали: 264 раз(а) Репутация: ![]() ![]() ![]() |
Пример:
array2d.h
array2d.cpp
main.cpp
Высокой скорости вычисления от скриптов ожидать не стоит (от нативной она будет сильно отличаться). |
|
|
BRE |
![]()
Сообщение
#3
|
![]() Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1112 Регистрация: 6.3.2009 Из: Ростов-на-Дону Пользователь №: 591 Спасибо сказали: 264 раз(а) Репутация: ![]() ![]() ![]() |
Пример:
array2d.h
array2d.cpp
main.cpp
Высокой скорости вычисления от скриптов ожидать не стоит (от нативной она будет сильно отличаться). |
|
|
Гость_Гость_AntonTatu_*_* |
![]()
Сообщение
#4
|
Гости ![]() |
Цитата Высокой скорости вычисления от скриптов ожидать не стоит (от нативной она будет сильно отличаться). спасибо, так то же попробывал..., очень медленно в 1000 раз на глазок если, вобщем вопрос не снят, каким образом можно из проги получать код и компилить его "нативно"....? я уже весь инет перелазил, ну не писать же собственный компилятор.... (для меня это не реально ![]() |
|
|
BRE |
![]()
Сообщение
#5
|
![]() Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1112 Регистрация: 6.3.2009 Из: Ростов-на-Дону Пользователь №: 591 Спасибо сказали: 264 раз(а) Репутация: ![]() ![]() ![]() |
спасибо, так то же попробывал..., очень медленно в 1000 раз на глазок если, вобщем вопрос не снят, каким образом можно из проги получать код и компилить его "нативно"....? я уже весь инет перелазил, ну не писать же собственный компилятор.... (для меня это не реально ![]() Уточни, из каких операций будет состоять формула (+ - * /)? Или будут еще какие-то функции? Опиши подробней. Ты используешь 2-мерный массив, это не изображение часом, а формула - не фильтр ли? |
|
|
AntonTatu |
![]()
Сообщение
#6
|
Студент ![]() Группа: Участник Сообщений: 48 Регистрация: 27.11.2008 Пользователь №: 437 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
спасибо, так то же попробывал..., очень медленно в 1000 раз на глазок если, вобщем вопрос не снят, каким образом можно из проги получать код и компилить его "нативно"....? я уже весь инет перелазил, ну не писать же собственный компилятор.... (для меня это не реально ![]() Уточни, из каких операций будет состоять формула (+ - * /)? Или будут еще какие-то функции? Опиши подробней. Ты используешь 2-мерный массив, это не изображение часом, а формула - не фильтр ли? все намного про ще, генерится специальным образом массив, считается формула такого вида: x[0,j]*x[2,j]*x[5,j]*x[10,j]+x[0,j]*x[3,j]*x[4,j]+N+..... формула считается в цикле, с каждой итерацией формула новая, ее длинна то же может изменится..., переменные в формуле это значения разных ячеек массива, на выходе каждой итерации необходимо получить расчетное значение итой формулы, колличество прогонов (итераций) миллионы.... ![]() |
|
|
BRE |
![]()
Сообщение
#7
|
![]() Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1112 Регистрация: 6.3.2009 Из: Ростов-на-Дону Пользователь №: 591 Спасибо сказали: 264 раз(а) Репутация: ![]() ![]() ![]() |
формула считается в цикле, с каждой итерацией формула новая, ее длинна то же может изменится..., переменные в формуле это значения разных ячеек массива, на выходе каждой итерации необходимо получить расчетное значение итой формулы, колличество прогонов (итераций) миллионы.... ![]() Исходя из этого сообщения, я не представляю реализацию с dll. ![]() Алгоритм: Рассчитали и заполнили массив с переменными; for( миллион итераций ) { Получили строку с формулой; Сгенерировали исходный файл (не важно С/asm); Запустили компилятор; Дождались завершения компиляции; Запустили линкер; Дождались завершения линковки; Загрузили dll; Resolve функцию; Выполнили функцию; Вернули результат; } Тебе не кажется, что время исполнения это цикла будет значительно больше чем выполнения того же скрипта на QtScript? А я так понял, что его скорость тебя уже не устраивает. Как генерируется сама формула? Обьясни по-подробней, чувствую все можно сделать проще и не такими экзотическими способами. |
|
|
![]() ![]() ![]() |
![]() |
|
Текстовая версия | Сейчас: 20.6.2025, 20:59 |