Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » *Теория* | Кодогенерация

Ответить
Настройки темы
*Теория* | Кодогенерация

Ночной странник


Contributor


Сообщения: 4050
Благодарности: 83


Конфигурация

Профиль | Сайт | Отправить PM | Цитировать


вот сейчас исследую возможности кодогенерации...

пробовал через евал и в PHP
и через компиляцию в C#

была цель: как можно быстрее выполнить определенную задачу...
сначала все работало на PHP, но в один прекрасный момент начало сильно тормозить...
перешол на C# скорость возросла...
решил попробовать кодогенерацию, может по быстрее будет работать...
и столкнулся с очень не приятной особенностью: очень большое время запуска...

там всего то 333Кб кода...
в итоге исполняемый файл в 254кб... а запускается очень долго...

зато вроде работает быстрее... но все преимущества ускорея съедаются долгой загрузкой

ктонибуть использовал методы кодогенераю?

-------
можно практически все, но просто мы это еще не знаем.
главный враг програмиста это копипастинг
За хорошее сообщение не забываем нажимать ссылочку "Полезное сообщение"!


Отправлено: 11:01, 13-08-2006

 

Ночной странник


Contributor


Сообщения: 4050
Благодарности: 83

Профиль | Сайт | Отправить PM | Цитировать


пришлось переходить на менежджет C++, как не сттранно хотел написать нечто подобное на чистом С++ только как то в MSDN вся информация о работе с XSL и XML в C++ глубоко лежит...

-------
можно практически все, но просто мы это еще не знаем.
главный враг програмиста это копипастинг
За хорошее сообщение не забываем нажимать ссылочку "Полезное сообщение"!


Отправлено: 14:13, 13-08-2006 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


редкий гость


Сообщения: 1696
Благодарности: 44

Профиль | Сайт | Отправить PM | Цитировать


Vlad Drakula
Под кодогенерацией много чего понимают.

Из твоего объяснения я лишь понял, что ты хотел что-то сделать. И в конце концов сделал. А что и как - ни слова.

-------
http://ivank.ru


Отправлено: 17:31, 13-08-2006 | #3


Ночной странник


Contributor


Сообщения: 4050
Благодарности: 83

Профиль | Сайт | Отправить PM | Цитировать


ivank
в общем идея такая:
есть компромис между размером кода программы и ее быстродействием, зачастую можно писать программу которая будет быстрее работать но для этого нужно написать пару тройку сотен кб кода... причем однотимного... что зачастую достаточно сложно.

соответственное есть определенное решение этой проблдеммы...

зачастую легче написать программу которая сгенерит код другой программы...

в общем то так я и сделал...

1) одна программа (написана на C#) по XML файлу генерирует код тругой программы (уже на C++ .NET)
2) получившийся код компилируется
3) получившаяся программа запускается

объем кода программы на С++ почти 600кб...

причем я приследовал одну единственную цель: как можно больше сократить время выполнения...
можно конечно сказать что на чистом С++ работало бы быстрее, я так и хотел сделать но столкнулся с нехваткой документации по работе с XSL в С++...
по этому принял компромисное решение...

в итоге тандем работает быстрее... но прямого сравнения я не делал т.к. у меня все это делает пока CMD файл а не единое приложение, но время работы сократилось примерно в 2-3 раза...

-------
можно практически все, но просто мы это еще не знаем.
главный враг програмиста это копипастинг
За хорошее сообщение не забываем нажимать ссылочку "Полезное сообщение"!


Отправлено: 18:07, 13-08-2006 | #4


Аватара для XCodeR

Ветеран


Сообщения: 878
Благодарности: 53

Профиль | Сайт | Отправить PM | Цитировать


Vlad Drakula
Цитата:
зачастую можно писать программу которая будет быстрее работать но для этого нужно написать пару тройку сотен кб кода
а пример подобной задачи(программы) можно?

Отправлено: 19:10, 13-08-2006 | #5


Ночной странник


Contributor


Сообщения: 4050
Благодарности: 83

Профиль | Сайт | Отправить PM | Цитировать


XCodeR
к примеру действия с большими матрицами...
зачастую многие пишут это во вложенных циклах, но с точки зрения это лучьше организовать без них.

-------
можно практически все, но просто мы это еще не знаем.
главный враг програмиста это копипастинг
За хорошее сообщение не забываем нажимать ссылочку "Полезное сообщение"!


Отправлено: 22:11, 13-08-2006 | #6

pva pva вне форума

Аватара для pva

Ветеран


Сообщения: 1180
Благодарности: 279

Профиль | Отправить PM | Цитировать


Не зависит, на кокм языке вы пишете программу (если он компилируется в машинные коды). Имеет значение лишь эффективность алгоритма. Зачастую смена алгоритма (емли она возможна) повышает производительность в десятки раз по сравнению с оптимизацией. 600 КБ - это не показатель быстродействия. Например, алгоритмы поиска по степени увеличения скорости: линейный, деление пополам, поиск по хеш-таблице. Никакая оптимизация не увеличит скорость линейного поиска до хеш-таблиц на больших данных. Оптимизация - это когда ничего другого уже не помогает.
Есть программы 600 МБ, которые запускаются очень быстро.
Если у вас есть альтернативный источник информации по XML - не обязательно пользоваться MSDN для написания программ на C++. Я, например, пользуюсь книгами Adisson Westley.
Приведите в двух словах алгоритм. По крайней мере так можно дать совет. И ещё: попробуйте галочку "релиз". Иногда помогает запускать быстрее.

Отправлено: 06:49, 28-08-2006 | #7



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » *Теория* | Кодогенерация

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
*Теория* | Сокеты XPurple Программирование и базы данных 1 25-09-2006 12:05
*Теория* | C++ | Объясните глюк pva Программирование и базы данных 1 03-11-2005 10:50
*Теория* | Тестовая система Ven Программирование и базы данных 3 06-07-2005 10:54
*Теория* | Tree via c++ pva Программирование и базы данных 2 04-05-2005 13:34
ТЕОРИЯ german r Мобильные ОС, смартфоны и планшеты 5 07-02-2003 09:42




 
Переход