Как уменьшить размер собранного exe?

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Re: Как уменьшить размер собранного exe?

Сообщение Sergei I. Gorelkin » 28.09.2009 19:13:28

debi12345 писал(а):Что это за тип ? Utf8 ? Если "да", то каков смысл его внедрения в свете современныых тенденций к UCS2-64K ?

Нет, это widestring со счетчиком ссылок.
Разница, собственно, только в винде, потому что на остальных платформах widestring и так был со счетчиком ссылок. Смысл внедрения, в том виде, в котором оно сделано (тупо скопипастен *весь* код для widestring, хотя разница только в выделении памяти) мне не слишком понятен... но по крайней мере порадовали Мартина, который жаловался на то, что в винде MSE тормозит. Хотя я не в курсе, перевел ли он MSE на этот тип строк.
Аватара пользователя
Sergei I. Gorelkin
энтузиаст
 
Сообщения: 1405
Зарегистрирован: 24.07.2005 14:40:41
Откуда: Зеленоград

Re: Как уменьшить размер собранного exe?

Сообщение Odyssey » 28.09.2009 19:55:49

Ambient писал(а):Скажите, а FPGUI ещё как-то развивается?

Развивается, но совсем медленно. Около полугода в репозитарий капают только мелкие фиксы.
Ambient писал(а):Очень хочется как-то реанимировать проект, довести до вменяемого состояния и начать использовать.

Идея за проектом просто потрясающая, то что есть - работает хорошо, но к сожалению многого пока нет (например нормального компонента Memo).

Если проект интересен - лучше всего (по возможности) общаться напрямую с Греймом через newsgroups.
О проблеме с Utf8Encode в ньюсгрупах уже сообщали в марте этого года, тогда Грейм сказал что обычно тестирует совместимость с новыми версиями компилятора ближе к их релизу. Возможно есть смысл снова поднять эту тему там?
Odyssey
энтузиаст
 
Сообщения: 580
Зарегистрирован: 29.11.2007 17:32:24

Re: Как уменьшить размер собранного exe?

Сообщение Ambient » 28.09.2009 20:18:30

Может я что-то путаю - не разобралась ещё до конца со всем этим Уникодом - но widestring состоит из двухбайтовых символов (поэтому быстр, т.к. размер символа фиксирован, хотя и занимает в два раза больше памяти чем AnsiString), тогда как UTF8 может занимать от 2-х до 4-х байтов. (вообще-то до 6-ти, но по стандарту определены только до 4-х), что и влияет на скорость операций с такими строками.
В связи с чем вопрос.
Кто-знает, почему Грэм использует не WideChar/WideString, а UTF8?
И можно ли проект перевести на WideChar?
Аватара пользователя
Ambient
новенький
 
Сообщения: 24
Зарегистрирован: 27.09.2009 10:51:17

Re: Как уменьшить размер собранного exe?

Сообщение debi12345 » 28.09.2009 20:37:32

debi12345
А в чём проблема?
У меня много подруг, которые получили техническое образование и работают по специальности. Не считаю это зазорным, тем более у женщин склад ума несколько отличается от мужского, что иногда позволяет взглянуть на проблему под нестандартным углом и найти эффективное решение.

Знаю таковых "по спецbальности" ( про офицанток и "макдональдс" {несмывемый позор русским ! } и речи не идет ) из "совка" - у меня наставниками в радио-КБ были именно женщины, они, даже вяжа свитера, думали о том, как придумать уголковое крепление корпуса, изготавливаемое без спец-оснастки (только на тисках). И склад ума у них ничуть не отличался от мужского - разве что отличался способ проведения досуга. Однако, из "не-совка" таковых, увы, не попадалось - все сплошь занимаются хренью-псевдо-профессиями типа "экономист", "бухгалтер" и прочей конъюнктурщиной , но никак не творческими, интересными, напрягающими мозги профессиями. Или в России/Украине не так ? Каков у Вас процент на вашем курсе был женского полу ? И каков процент из выпускниц пошел работать по специальности, а не ударился в позорную для русских конъюнктурщину ? У нас процент 1-х, помноженный на процент 2-х дает величину, близкую к нулю - почему и спрашиваю :)

Разница, собственно, только в винде, потому что на остальных платформах widestring и так был со счетчиком ссылок. Смысл внедрения, в том виде, в котором оно сделано (тупо скопипастен *весь* код для widestring, хотя разница только в выделении памяти) мне не слишком понятен...

Спасибо, понятно - это реальный "widestring", а не "olestring", попутавший все карты. Надо сказать Мартину.
Аватара пользователя
debi12345
долгожитель
 
Сообщения: 5759
Зарегистрирован: 10.05.2006 23:41:15
Откуда: Ташкент (Узбекистан)

Re: Как уменьшить размер собранного exe?

Сообщение Ambient » 28.09.2009 20:45:01

Odyssey писал(а):
Ambient писал(а):Скажите, а FPGUI ещё как-то развивается?

Развивается, но совсем медленно. Около полугода в репозитарий капают только мелкие фиксы.
Ambient писал(а):Очень хочется как-то реанимировать проект, довести до вменяемого состояния и начать использовать.

Идея за проектом просто потрясающая, то что есть - работает хорошо, но к сожалению многого пока нет (например нормального компонента Memo).

Ну если и не потрясающая, то лично мне мне необходимая )))
Для меня актуален вопрос написания кроссплатформенного софта для решения учетных задач.
Считаю, что пользователь работает с программой, а не с ОС. Поэтому любая программа в любой среде должна выглядеть одинаково. Так называемый нативный вид (нативный для ОС) здесь только вредит. Пример я имею перед глазами каждый день, когда с 1С77 перевожу на 1С8. Пользователей это вводит в ступор.
В тоже время с программами написанными на Дельфи со скинами аля 1С77, пользователи работают без всяких проблем. Подобное происходит и когда пересаживаются с 1с8 на 1С77.
Именно поэтому мне нужна одинаковая отрисовка виджетов на различных платформах.
Odyssey писал(а): Если проект интересен - лучше всего (по возможности) общаться напрямую с Греймом через newsgroups.
О проблеме с Utf8Encode в ньюсгрупах уже сообщали в марте этого года, тогда Грейм сказал что обычно тестирует совместимость с новыми версиями компилятора ближе к их релизу. Возможно есть смысл снова поднять эту тему там?

Проект интересен, но так получилось, что я больше занимаюсь программированием, чем участвую в форумах и прояих подобных механизмах. Поэтому даже не знаю что это за Ньюсгроуп и с чем её едят (((
Аватара пользователя
Ambient
новенький
 
Сообщения: 24
Зарегистрирован: 27.09.2009 10:51:17

Re: Как уменьшить размер собранного exe?

Сообщение debi12345 » 28.09.2009 20:53:34

Кто-знает, почему Грэм использует не WideChar/WideString, а UTF8?

Вопрос в 10-ку! Куча вроде как ненужных конверсий (причем медленных ) на лету. Думаю, потому он и расстроился решению команды QT.
Подозреваю заботу о расширенном китайском языке - китайских поэтах, писателях,.. :) Шутка, конечно - просто UTF8 перекрывает все кодировки в запасом на будущее - только вот понадобится ли это, или, что более вероятно - грядет унификация на базе USC2.
Аватара пользователя
debi12345
долгожитель
 
Сообщения: 5759
Зарегистрирован: 10.05.2006 23:41:15
Откуда: Ташкент (Узбекистан)

Re: Как уменьшить размер собранного exe?

Сообщение Mr.Smart » 28.09.2009 20:54:57

debi12345 писал(а):Каков у Вас процент на вашем курсе был женского полу ? И каков процент из выпускниц пошел работать по специальности, а не ударился в позорную для русских конъюнктурщину ?

У нас на 70 душь было 3 девушки. Из которых одна недоучилась. Другая работает непойми кем, а одна работает очень даже по специальности на гос. предприятие, с которого я удачно лет так 5 назад свалил. И занимается коденгом не отнють на "проклятой" всеми Виндой :wink:
Mr.Smart
долгожитель
 
Сообщения: 1796
Зарегистрирован: 29.03.2008 01:01:11
Откуда: из леса!

Re: Как уменьшить размер собранного exe?

Сообщение Ambient » 28.09.2009 20:59:18

debi12345 писал(а): но никак не творческими, интересными, напрягающими мозги профессиями.

Творчество и "напряжение мозгов" не всегда совмещаются. К примеру, у меня есть знакомые художники - творческие люди, но мозги напрягают далеко не все )))
debi12345 писал(а):Каков у Вас процент на вашем курсе был женского полу ? И каков процент из выпускниц пошел работать по специальности,

Пятеро нас было, а на параллельных курсах было довольно много. Не все они по специальности работают. Собственно и парни далеко не все по специальности трудятся. Это не столько от пола зависит, сколько он социально-экономических факторов.
debi12345 писал(а): а не ударился в позорную для русских конъюнктурщину ? У нас процент 1-х, помноженный на процент 2-х дает величину, близкую к нулю - почему и спрашиваю :)

Думаю, что пусть лучше официанткой, чем проституткой. И это не конъюктурщина - сложно работу найти, а жить нужно, вот и вертятся.
И пока пещерный капитализьм будет рулить, так и будет.
А программистов толковых очень мало, больше тех, кто включить/выключить и программу установить, вот такие "спецы". Может в других республиках иначе, но у нас так (
Аватара пользователя
Ambient
новенький
 
Сообщения: 24
Зарегистрирован: 27.09.2009 10:51:17

Re: Как уменьшить размер собранного exe?

Сообщение Sergei I. Gorelkin » 28.09.2009 21:00:18

Ambient писал(а):Может я что-то путаю - не разобралась ещё до конца со всем этим Уникодом - но widestring состоит из двухбайтовых символов (поэтому быстр, т.к. размер символа фиксирован, хотя и занимает в два раза больше памяти чем AnsiString), тогда как UTF8 может занимать от 2-х до 4-х байтов. (вообще-то до 6-ти, но по стандарту определены только до 4-х), что и влияет на скорость операций с такими строками.В связи с чем вопрос.Кто-знает, почему Грэм использует не WideChar/WideString, а UTF8?И можно ли проект перевести на WideChar?


Тип строки не может быть быстрым или медленным. Скорость - характеристика кода, который работает со строками, и зависит от того, как код написан.
widestring использует кодировку utf-16, в которой символ может занимать 2 или 4 байта. В utf-8 - от 1 до 4 байт. Если делать "как положено" (с поддержкой всего диапазона unicode), то принципиальной разницы между ними нет, доступ по индексу невозможен ни там ни сям.
Другое дело, на момент начала работы над FPGUI widestring не имел счетчика ссылок и работа с ним в Windows была действительно медленнее. Кроме того, widestring был для разработчиков FPC чем-то второстепенным, с ним регулярно что-то ломалось, и надо отдать должное Мартину, который едва ли не ногами пинал команду до тех пор, пока они все не исправили.
Перевести проект на Widestring - разумеется можно (на то он и опенсорс), но вот можно ли убедить Грэма это сделать - большой вопрос.
Аватара пользователя
Sergei I. Gorelkin
энтузиаст
 
Сообщения: 1405
Зарегистрирован: 24.07.2005 14:40:41
Откуда: Зеленоград

Re: Как уменьшить размер собранного exe?

Сообщение скалогрыз » 28.09.2009 23:07:49

Sergei I. Gorelkin писал(а):widestring использует кодировку utf-16, в которой символ может занимать 2 или 4 байта. В utf-8 - от 1 до 4 байт. Если делать "как положено" (с поддержкой всего диапазона unicode), то принципиальной разницы между ними нет, доступ по индексу невозможен ни там ни сям.


WideString-и имеют преймущество, именно потому, что доступ по индексу возможен.
4-х байтовые символы - сурогатные пары. На письме не используются (есть ли примеры исползования?!)...
всегда можно сделать проверку (например при чтении строки из файла, сети или откуда угодно), и при необходимости, заменить все сурогатные символы (пары), на "несуществующий" символ. (как делали/делают многие современные системы)
Собственно, utf-16 кодировку составили именно так, чтобы любой все "часто использующиеся" символы (все символы, всех актуальных на сегодняшний день языков), умещались в 2 байта.

При такой политике, можно смело использовать доступ по индексу.

Кроме того, WideString используется как базовый строковый тип для систем Windows и MacOSX (за Linux говорить не буду). Если WideString являлся "стандартом" для LCL, то количество конвертаций строк, для этих двух систем было бы меньше. Было бы меньше путаницы с кодировками в Windows (и KOIR Linux), потому что нужно помнить, что для LCL string это UTF8, а для FCL string это ANSI. + Учитывать что старые исходники наверное в ansi, а новые исходники в utf8.

Но т.к. кода написано немало (програм на базе LCL и FCL), менять всё на WideString будет весьма болезненно.
скалогрыз
долгожитель
 
Сообщения: 1803
Зарегистрирован: 03.09.2008 02:36:48

Re: Как уменьшить размер собранного exe?

Сообщение Sergei I. Gorelkin » 28.09.2009 23:28:05

скалогрыз писал(а):4-х байтовые символы - сурогатные пары. На письме не используются (есть ли примеры исползования?!)...


Мы, конечно, достаточно далеки от этих примеров, но все-таки суррогатными парами кодируется свыше миллиона символов, в то время как одним widechar - всего 63488.
Аватара пользователя
Sergei I. Gorelkin
энтузиаст
 
Сообщения: 1405
Зарегистрирован: 24.07.2005 14:40:41
Откуда: Зеленоград

Re: Как уменьшить размер собранного exe?

Сообщение скалогрыз » 28.09.2009 23:57:18

Sergei I. Gorelkin писал(а):Мы, конечно, достаточно далеки от этих примеров, но все-таки суррогатными парами кодируется свыше миллиона символов, в то время как одним widechar - всего 63488.

в том-то и дело! простому пользователю, миллионы символов не нужны! миллионами этих символов можно пренебречь!
скалогрыз
долгожитель
 
Сообщения: 1803
Зарегистрирован: 03.09.2008 02:36:48

Re: Как уменьшить размер собранного exe?

Сообщение Максим » 29.09.2009 00:30:32

скалогрыз писал(а):в том-то и дело! простому пользователю, миллионы символов не нужны! миллионами этих символов можно пренебречь!

Простой пользователь из Китая, думаю, оспорит это мнение. :mrgreen:
Аватара пользователя
Максим
энтузиаст
 
Сообщения: 598
Зарегистрирован: 27.07.2007 01:51:43
Откуда: Москва

Re: Как уменьшить размер собранного exe?

Сообщение Ambient » 29.09.2009 05:22:17

Sergei I. Gorelkin писал(а):widestring использует кодировку utf-16, в которой символ может занимать 2 или 4 байта. В utf-8 - от 1 до 4 байт. Если делать "как положено" (с поддержкой всего диапазона unicode), то принципиальной разницы между ними нет, доступ по индексу невозможен ни там ни сям.

В Delphi используется именно 2-х байтовый WideChar. Что вполне достаточно для большинства применений.
Sergei I. Gorelkin писал(а):Перевести проект на Widestring - разумеется можно (на то он и опенсорс), но вот можно ли убедить Грэма это сделать - большой вопрос.

Да можно, конечно, и самой.
Но и Грэм мог бы подсуетиться и сделать возможность выбора. Ввел бы флаги и директивы условной компиляции и одним движением руки библиотека бы превращалась и в анси и вайд и в утф и ...
А мы бы сконцентрировались на главном.
Аватара пользователя
Ambient
новенький
 
Сообщения: 24
Зарегистрирован: 27.09.2009 10:51:17

Re: Как уменьшить размер собранного exe?

Сообщение Attid » 29.09.2009 07:14:15

Ambient
если хочется одинакового вида в венде и в лине почему бы не взять MSE ?

Добавлено спустя 11 минут 34 секунды:
NEWS примерно так
Изображение
только параметры сервера возьми по ссылки
Аватара пользователя
Attid
долгожитель
 
Сообщения: 2585
Зарегистрирован: 27.10.2006 17:29:15
Откуда: 44°32′23.63″N 41°2′25.2″E

Пред.След.

Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 16

Рейтинг@Mail.ru