| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Общие вопросы > Моя прога много весит |
| Автор: Dreyka 14.7.2004, 12:53 |
| Привет всем. Из темы понятно в чём проблема. Вопрос : Как с ней справиться? |
| Автор: RA 14.7.2004, 13:09 |
| Такие темы нераз обсуждались воспользуйся поиском |
| Автор: gemoglobin 14.7.2004, 13:15 |
| большинство (и я в том числе) пишут проги, подключая стандартные модули и компоненты. И те и другие тянут за собой еще много всякого барохла, которое может и не будет у тебя использоваться в программе. Вот и растет размер. Я честно говоря на это забил - клиентам это не нужно, а мне тем более. Есть набор KOL и (что-то еще забыл), которые заменяют стандартные наборы модулей Delphi и позволяют писать проги малых размеров -сокращая до 6-8 раз. |
| Автор: -=::BlackCat::=- 14.7.2004, 16:25 |
| UPX ishi |
| Автор: dvamaster 14.7.2004, 16:30 |
| Если любишь голову поломать, можешь перейти на WinAPI. Работает много быстрее и весит меньше. Проверено временем. Это не кидать компоненты на форму. Хотя при наличии RES-едитора проблема частично улетучивается. Но если хочется использовать интерфейс навороченных Delphi-компонентов, то придется сильно поднапрячься. Советую WinAPI! |
| Автор: _hunter 14.7.2004, 16:37 |
| + переходи на WASM -- отличный компилятор |
| Автор: dvamaster 14.7.2004, 16:52 |
| Пиши машинными кодами... Хотя это уже не здесь обсуждается! |
| Автор: Vit 14.7.2004, 17:16 |
| Недавно обратил внимание - Photoshop.exe весит больше 15 метров, и заметь я ещё ни разу в жизни не встретил человека который сетует на его размер... Если размер критичен - бери другой язык программирования, например forth или ассемблер... |
| Автор: Girder 15.7.2004, 09:31 | ||
А вообще лудше использую упаковщик, т.к даже если прога написанна на ассемблере под win, зачистую она все равно памяти много отжирает(не смотря на маленький размер на диске). Но производительность беспорно выше. P.S. В настоящее время размер уже не так актуален, а вот производительность будет актуальна всегда. |
| Автор: Петрович 15.7.2004, 10:45 | ||
Только лучьше не UPX а например AsPack. У UPX есть неприятная особенность: на больших EXE-шниках, если в статически связанной DLL не находится нужная функция, то прогармма просто не запускается, без всяких сообщений об ошибке! |
| Автор: RA 15.7.2004, 12:42 | ||||
Петрович обнови UPX! PS Aspak -Suxxx |
| Автор: gemoglobin 15.7.2004, 15:12 | ||||
а сколько весят библиотеки для работы програмы + сколько прога весит в памяти!!! с делфями даже не сравнить плюс сам D8 в памяти метров 100 занимает !!! Чем дальше тем проги больше - это конечно не радует |
| Автор: _hunter 15.7.2004, 16:28 |
| ну и что? при опертивке за гиг и винте за 120г ( средний комп на сегодня |
| Автор: Петрович 15.7.2004, 16:54 | ||
По моему, я пробовал с v1.24w. Ну пожалуй сегодня еще раз попробую - есть у меня учебно-воспитательный проектище. |
| Автор: RA 15.7.2004, 17:16 | ||||
1.25 - Last Но с такими ошибками,как ты описал ниразу не встречался. Немогбы ты мне для эксперимента выслать программульку, с которой такая фигня случается. |
| Автор: maza 15.7.2004, 19:16 |
| А как на счёт 1.91 ? |
| Автор: RA 15.7.2004, 19:55 |
| Это Бэта. Не рекомедуемая, только для тестов. |
| Автор: Петрович 16.7.2004, 10:16 | ||
Вот, возьми http://asysoev.nm.ru/data/Project1.zip - ~280 кило. Меньше не получилось Это, как ты просил, пример EXEшника на котором плохо себя ведет UPX (включая v1.90w). Написан на Delphi, но слегка подправлен WinHex'ом, дабы не напрягать реальной жизнью Проявляется так: не упакованный файл при запуске ругается на отсутствие в User32.dll некой процедуры, и не запускается. А если его упаковать, то программа не запускается без какой-либо диагностики! Пользователь при этом в недоумении |
| Автор: Петрович 26.7.2004, 10:07 | ||||
| to RAdmin Ну, попробовал? Могу предложить еще, гораздо проще Ниже привожу простеникие проекты dll и Exe который ее использует. Если dll не упакована, то все нормально, если-же упаковать dll, то поведение программы существенно изменяется! Важно. Эффект проявляется только если программа (TestDllLoader) скомпилированна без пакетов (Project options / Packages / Runtime packages / Build with runtime packages - выключено), а библиотека (TestDll.dpr) с пакетами (Project options / Packages / Runtime packages / Build with runtime packages - включено). И еще, у меня все это компилится Delphi6. Причем, не рекомендую все это запускать из под Delphi. TestDll.dpr :
TestDllLoader.dpr :
|
| Автор: RA 26.7.2004, 12:02 |
| Так, что касается первого примера, ну не выдаётся мессага об ерроре, ну и фиг с ним. Ну, а еслиб такая функция каторую требует твой exe имелабы место быть то тогда что ? Что касается второго примера, так там у меня, что в упакованном виде, что не в упакованном виде все одинаково. Причём паковать я пробовал с разными параметрами. |
| Автор: Петрович 26.7.2004, 12:56 |
| [quote]Ну, а еслиб такая функция каторую требует твой exe имелабы место быть то тогда что ?[/quote] Что, что. Программа спокойно начала-бы работать. [quote]Так, что касается первого примера, ну не выдаётся мессага об ерроре, ну и фиг с ним. [/quote] Ну да, только вот когда такая ситуация возникла у пользователя Моя программа использует функции из AdvApi32.dll. А он, как оказалось существует в нескольких версиях. Под Win95, в нем нет некоторых функций. Так вот, когда очумевший пользователь звонит в службу поддержки и утверждает что при запуске программы НИЧЕГО НЕ ПРОИСХОДИТ, .... В общем, пока разбирались, потеряли много нервных клеток [quote]Что касается второго примера, так там у меня, что в упакованном виде, что не в упакованном виде все одинаково.[/quote] Напомню, у меня это при компиляции D6 и что ОСОБО ВАЖНО: [quote]Эффект проявляется только если программа (TestDllLoader) скомпилированна без пакетов (Project options / Packages / Runtime packages / Build with runtime packages - выключено), а библиотека (TestDll.dpr) с пакетами (Project options / Packages / Runtime packages / Build with runtime packages - включено).[/quote][/quote] А http://asysoev.nm.ru/data/TestDllLoader.zip, выложил и исходники, и скомпилированный, но не упакованный вариант (10kb) |
| Автор: RA 26.7.2004, 14:29 |
| Компилил в D6 но забыл отключить Runtime packages, Ну вообщем есть косячеллы. |