Почему программы на DevelStudio так много весят?
14.02.2010
Дорогие друзья, Вы наверное замечали, что программы созданные в среде весят много. Много - в относительном смысле. Приведу данные последней версии: 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 век, терабайты данных, никто уже не считает килобайты данных. Написанием мелких программ никто не занимается, кроме новичков, они чаще всего имеют исследовательский характер и поэтому размер для них в несколько мб не имеет значения. вернутся к списку |