Почему программы на DevelStudio так много весят?
![]() | ![]() |
Дорогие друзья,
Вы наверное замечали, что программы созданные в среде весят много. Много - в относительном смысле. Приведу данные последней версии:
1. Созданная пустая программа, во время отладки, занимает около 6+ мб места.
2. Максимально сжатая программа без дополнительных модулей весит 2,5 мб.
Что входит в программу?
1. Движок PHP5 (php5ts.dll), который занимает в сжатом виде 1,8 мб
2. Движок SoulEngine (soulEngine.exe), который занимает в сжатом виде 700 кб
3. Фреймворк SoulEngine, который занимает в сжатом виде 40+ кб
4. Ваш код + формы занимают от 10+кб и до бесконечности.
Также в вашей программе (exe) находиться иконка, некоторые иконки могут весить более 100 кб, что также сказывается на размере программы.
И так, что мы видим, это то, что 75% от вашей программы - движок PHP5. Он встраивается внутрь программы или идет рядом с ней. Поэтому мы не можем существенно уменьшить размер создаваемых программ, но это не значит что сделать ничего нельзя, читаем дальше.
Как все таки прыгнуть выше головы?
И так, довольно просто понять, что несколько программ могут использовать один и тот же движок PHP5, один и тот же файл, а это 75% от вашей программы. Также можно использовать совместно дополнительные расширения. Т.е. несколько программ созданных на DevelStudio можно размещать в одной папке и они будут использовать один и тот же движок и расширения размещенные в папке.
Представьте что вы делаете например 3-4 программы, размещаете их в одной папке, не прикрепляете к ним движок PHP5 (эта опция есть в настройках сборки), максимально сжимаете все их. В итоге вы сокращаете размер своих программ на 5,4 мб! А если их больше? Вы экономите еще больше!
Методы сжатия программ применяемые в DevelStudio
В нашей среде применяется сжатие программ и dll с помощью известной утилы UPX. С помощью нее сжимается сам движок PHP5 и SoulEngine. Благодаря ей мы имеем миниатюрные программы.
Но, сжать ваши программы можно еще дополнительно с помощью архиватора 7-zip, он позволит вам еще чуть сжать приложение где-то на +5%.
Напоследок...
Да, мы получаем большие программы, но они легко переносимы, не требуют предустановленных фреймворков .NET и JavaSDK, которые весят 20+ мб и 200+ мб соответственно. Наши программы получаются меньше программ, использующих GUI библиотеки по типу QT (на QT программы весят в сжатом состоянии от 4 мб), наши программы могут работать без дополнительных dll (если не использовать расширения)!
Поэтому чтобы там не говорили на счет размера, на дворе уже 21 век, терабайты данных, никто уже не считает килобайты данных. Написанием мелких программ никто не занимается, кроме новичков, они чаще всего имеют исследовательский характер и поэтому размер для них в несколько мб не имеет значения.
вернутся к списку версия для печати
Комментарии:
M.I.R пишет:
ЭХХ.Размер значения не имеет)на это в последнию очередь смотрю.другое дело это то что движок лагает (зависает).К примеру когда прозрачную кнопку под которой стоит картинка наводишь курсор.на момент вместо кнопки образуется дырка до рабочего стола.вот это проблема.и так со всеми прозрачными элементами.если бы эту ошибку исправили бы,то цены бы вашей программе не было бы!
Alpinist пишет:
Ребят, сделайте сборку или модуль, чтобы после соединения с 1С не удалялись сведения о соединении из памяти. В данный момент это решается через перл к примеру, делается демон на перле, через который идет обмен. Без этого соединение проходит 5-6 секунд, с этим менее секунды.
Devel пишет:
Идея фреймворка на подобии .NET уже была, и такая возможность в скором появится. Также возможно будет пересобран движок php только с нужными модулями для программ и он станет весить меньше.
unix пишет:
Сделайте движок php отдельно устанавливаемым.
По аналогии как с установкой .NET Framework, Visual C++ Redistributable 2005 и 2008, и что там еще обычно ставится при установке софта.
Если программа небольшая, то пусть выдает окошко с требованием установить библиотеки с такого-то сайта, если их нет в системе. А если программа весит пару сотен мегобайт, то можно добавить библиотеки (движок php) в установщик или разместить рядом с ним в комплекте, чтобы при установке они былии подхвачены и установлены.
oleg пишет:
И кстати, в Борланд С тоже самое. Если не делать динамические библиотеки, то, используя визуальные библиотеки (формы, графики и т.д..) минимальный размер от 1 до 2 Мб. Работа с БД еще + 400-500 Кб. Т.е. выйдет те же 5-6 Мб. Только библиотеки пихаются в винду, а не рядом с прогой. И тогда делаются апдейты и фул-инсталл.
Чел сам решает, что качать.
oleg пишет:
Да нормально 5-6 Мб. Только надо сделать инсталяцию проги по-другому. Прога должна быть без встроенной библиотеки.
При инсталяции библиотеки суются в папку Windows. А прога как и положено, запускается из своей папки. Пути поиска, по-умолчанию к винде всегда прописаны. И будет нормальный размерчик. 1 раз поставил с инсталятора, а если друг бета-тестер, то в следующий раз можно уже без библиотеки пихать. Новому юзеру - всегда инсталятор.
По такому принципу куча программ работает, тот же ФоксПро от майкрософта, там библиотеки от 3 до 10 Мб. А экзешник - 100 кб. И все гуд.
xsnakes пишет:
Размер всегда имеет значение!
И в жизни тоже... ;)
Saysaylon пишет:
У каждой программы есть свои достоинства и недостатки. А если пользователь программист PHP, тогда эта программа ему подходит, как никакая другая, да и подспорье неплохое для изучения его самого. И размер не так уж и велик... Действительно время бежит вперёд, сейчас мегабайты, как раньше килобайты считаем и поверьте это не предел. Технологии будут развиваться размер программ будет расти.
Да, кстати HiASM поддерживает, PHP, но на уровне web, но при этом надо установить web server и, собственно сам движёк PHP...
Интересно, сейчас, только какие-нибудь маленькие одноразовые программы будут занимать небольшой размер, ведь чтобы использовать тот же самый SQLlite, движёк ввиде dll с собой надо таскать.
И как мне кажеться, что плюс во всём этом весе кроссплатформенность, вернее возможность для автора(ов) создать это приложение и под другие ОСИ.
flocker пишет:
Размер не имеет значения,имею значения функции.
Но если вы хотите напихать дофига музона в вашу программу а потом говорить: О боже что программа так много весит????Или типо того.Как сказал Димон что 21 век - эт верно)))СА теперь посмотрите на другие программы,сколько же они весят? Можно посчитать размер отдельно.Даже калькулятор весит 8 - 15 мб.=)))))У Хай Асемблер - есть другая технология но он тоже может занимать много места.
Делайте большие программы,а не какие нить считалки - так хоть оцените размер и функциональность вашего проекта вместе с ним .
Devel пишет:
xsnakes
У них не язык PHP, а лишь транслятор скорее всего, если приложения получаются маленькими. Но трансляторы не поддерживают множества возможностей языка.
<< | 1 2 | >>

