Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.01.2016, 14:21   #21
Vapaamies
Ваш К. О.
Участник клуба
 
Аватар для Vapaamies
 
Регистрация: 26.12.2012
Сообщений: 1,774
По умолчанию

Цитата:
Сообщение от min@y™ Посмотреть сообщение
Так и быть должно? Или я что-то делаю не так?
Если ты подсовываешь ей программу, собранную с ключом {$SetPEFlags} и потому уже оптимизированную самим Delphi, результат ожидаем. На заголовках много не выиграешь, это больше для мелких утилит вроде самой Pet имеет значение.

К тому же новые версии Delphi создают больше секций в exe-файле, и раздувшийся за их счет заголовок PE уже не влезает в первые 512 байт, так что замена DOS-заглушки ничего не дает в плане выигрыша. На твоем скрине выигрыш только за счет ключа -trunc. Убери его, и будет чистый 0.

Вот если скормить Pet программу с отладочной информацией, она ее радостно вырежет, а полученный exe-шник по размерам будет соизмерим с релизной сборкой. На практике так делать не надо, если на то нет серьезных причин. Как уже говорил, в отладочной сборке обычно включен флаг {$R+}, а порожденный им код никакая Pet не вырежет -- он по всему коду программы разбросан. Тут не утилита нужна, а компилятор, и этот компилятор -- Delphi.

Так что да, несмотря на раздутость RTL современных версий Delphi, при использовании рассмотренных нами практик файл выходит технически оптимизированным, и больше вырезать из него ничего нельзя. Нужно альтернативный компилятор писать.
Vapaamies вне форума Ответить с цитированием
Старый 17.01.2016, 14:26   #22
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

Цитата:
Так что да, несмотря на раздутость RTL современных версий Delphi, при использовании рассмотренных нами практик файл выходит технически оптимизированным, и больше вырезать из него ничего нельзя.
Да я так и думал. Но надеялся на чудо.
А чудес не бывает.
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 17.01.2016, 14:49   #23
Vapaamies
Ваш К. О.
Участник клуба
 
Аватар для Vapaamies
 
Регистрация: 26.12.2012
Сообщений: 1,774
По умолчанию

Отпишитесь еще в теме Pet, если кто хочет увековечить свои имена в DOS-заглушках.

Цитата:
Сообщение от min@y™ Посмотреть сообщение
Исходник нуждается в портировании под юникодный компайлер.
Версия 0.3.2 должна собираться, а на 0.4 еще не выделял время играться с XE2.
Vapaamies вне форума Ответить с цитированием
Старый 17.01.2016, 15:00   #24
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

Просто забей на НЕюникодный вариант. Навсегда.
Сэкономишь время.
Другой вопрос - смысл-то есть?

З.Ы. У меня ХЕ10, я посмотрел - можно просто удалить часть кода, связанного с кодировками.
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 17.01.2016, 17:51   #25
Vapaamies
Ваш К. О.
Участник клуба
 
Аватар для Vapaamies
 
Регистрация: 26.12.2012
Сообщений: 1,774
По умолчанию

Цитата:
Сообщение от min@y™ Посмотреть сообщение
Просто забей на НЕюникодный вариант. Навсегда.
Сэкономишь время.
Ты не понял. В CoreLite своя поддержка Юникода, работающая в Delphi 6/7. Тестируемая тобой бета используюет юникодную консоль, -- в ней нормально и диакритики выводятся, и грузинский с армянским, и иероглифы всякие. Нужно только Lucida Console или Consolas для консоли установить, о чем во встроенной справке написано.

А если собрать Pet в Delphi XE2, где нет "трюкового" модуля System, она на ровном месте из 60 КБ станет 160. Мне потом что, свою тему об уменьшении размера файлов заводить?
Vapaamies вне форума Ответить с цитированием
Старый 17.01.2016, 17:56   #26
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

Цитата:
А если собрать Pet в Delphi XE2, где нет "трюкового" модуля System, она на ровном месте из 60 КБ станет 160. Мне потом что, свою тему об уменьшении размера файлов заводить?
Да мне, собственно говоря, ультрафиолетово.
Смущает только 1 вопрос: ты D7 до самого зомби-апокалипсиса юзать собираешься?
Можешь не отвечаешь, имеешь право.
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 17.01.2016, 18:42   #27
Vapaamies
Ваш К. О.
Участник клуба
 
Аватар для Vapaamies
 
Регистрация: 26.12.2012
Сообщений: 1,774
По умолчанию

Цитата:
Сообщение от min@y™ Посмотреть сообщение
Смущает только 1 вопрос: ты D7 до самого зомби-апокалипсиса юзать собираешься?
Если зомби-апокалипсис наступит быстрее, чем я напишу Кантор, то да.

В "Канторовых системах" нет задачи правильно потреблять новомодные штуки Delphi, а стоит задача разработать самобытный Кантор. Ради этого приходится опускаться вниз. На работе я без проблем работаю в Delphi 2010 -- там другие задачи, корпоративный стандарт и всё такое прочее.

Твой интерес сподвиг меня запустить-таки виртуалку с XE2 и добиться компилируемости исходников. На радостях обновил архив исходников на SourceForge, теперь он соответствует кандидату в релиз, компилированную сборку которого я решил не выкладывать. Исходники теперь новее бинарников.

К слову сказать, в XE2 Pet.exe 100 кил выходит, я на 60 кил ошибся.
Vapaamies вне форума Ответить с цитированием
Старый 17.01.2016, 18:47   #28
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

Цитата:
К слову сказать, в XE2 Pet.exe 100 кил выходит, я на 60 кил ошибся.
Прогнать через ХЕ10?

152.png

Самое интересное, похоже, ещё впереди.
Лечится, конечно же, так:

153.jpg

Результат компайлинга:

154.png

Как работает - не проверял.
Вложения
Тип файла: zip PETool.7z.zip (273.3 Кб, 3 просмотров)
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...

Последний раз редактировалось min@y™; 17.01.2016 в 19:03.
min@y™ вне форума Ответить с цитированием
Старый 17.01.2016, 19:00   #29
Vapaamies
Ваш К. О.
Участник клуба
 
Аватар для Vapaamies
 
Регистрация: 26.12.2012
Сообщений: 1,774
По умолчанию

Цитата:
Сообщение от min@y™ Посмотреть сообщение
Самое интересное, похоже, ещё впереди.
{$T+} в настройках проекта включи (Typed @ operator). С object-ами без него никак.
Vapaamies вне форума Ответить с цитированием
Старый 17.01.2016, 19:04   #30
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

Цитата:
{$T+} в настройках проекта включи (Typed @ operator). С object-ами без него никак.
Да догадался. Я давно программистом работаю.
Сначала запостил, потом допёрло.
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как уменьшить размер рисунка? ДимаДК Общие вопросы Delphi 2 25.11.2013 21:15
Как уменьшить размер exe? the27mart Общие вопросы C/C++ 3 25.11.2012 11:38
Как уменьшить размер .ехе файла? D7 dx+ Общие вопросы Delphi 28 16.03.2012 20:38
Как уменьшить размер фото nikolj HTML и CSS 1 27.11.2011 14:53
Как уменьшить размер сборки? Д'якон Общие вопросы Delphi 12 03.09.2009 11:18