[Решено] Размер приложений 0.9.30 в Linux

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

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

[Решено] Размер приложений 0.9.30 в Linux

Сообщение Владимир » 30.06.2011 08:12:48

Всем доброго!
Вопросы:
1. В 0.9.24 размер приложения составлял около 5.5 Мб, после перехода на 0.9.30 - вырос до 7.5 Мб.
2. Пользователи утверждают, что все стало медленнее работать (субъективно).
Изменения - был KDE, теперь XFCE.
Исторически сложилось так, что кодировка системы и БД (MySql-5.1) koi-8r, так что при чтении-записи текстовых полей теперь приходится использовать SysToUtf8 и обратно. Доступ к БД через Zeos 6.6.5.
Кто-нибудь сталкивался?
Последний раз редактировалось Владимир 05.07.2011 22:29:01, всего редактировалось 3 раз(а).
Владимир
постоялец
 
Сообщения: 355
Зарегистрирован: 23.08.2007 19:48:39
Откуда: Москва

Re: Размер приложений 0.9.30 в Linux

Сообщение MageSlayer » 30.06.2011 09:50:21

Думаю, что без уточнения какие компоненты вы используете, какие алгоритмы/функции теперь тормозят, этот вопрос не имеет смысла.
Сижу на версии svn как Fpc, так и Lazarus. Особенного роста размера проекта за последние 2 года не заметил.
MageSlayer
постоялец
 
Сообщения: 216
Зарегистрирован: 07.09.2006 12:30:44

Re: Размер приложений 0.9.30 в Linux

Сообщение dunin » 30.06.2011 10:16:30

Владимир писал(а):...при чтении-записи текстовых полей теперь приходится использовать SysToUtf8 и обратно....
Кто-нибудь сталкивался?

Это нормально. :?
Аватара пользователя
dunin
энтузиаст
 
Сообщения: 634
Зарегистрирован: 02.05.2007 13:18:11
Откуда: Тољя††и

Re: Размер приложений 0.9.30 в Linux

Сообщение Владимир » 30.06.2011 11:46:36

MageSlayer писал(а):Думаю, что без уточнения какие компоненты вы используете, какие алгоритмы/функции теперь тормозят, этот вопрос не имеет смысла.
Сижу на версии svn как Fpc, так и Lazarus. Особенного роста размера проекта за последние 2 года не заметил.

Спасибо, никакой экзотики не использую, компоненты все штатные (наелся в свое время с MaskEdit...). По поводу увеличения размера исполняемого файла - выросли прилично даже простенькие приложения (панель, грид и пара кнопок).
Похоже, тормозит работа с БД.

Добавлено спустя 3 минуты 16 секунд:
dunin писал(а):
Владимир писал(а):...при чтении-записи текстовых полей теперь приходится использовать SysToUtf8 и обратно....
Кто-нибудь сталкивался?

Это нормально. :?

Нормально что - увеличение размера или снижение скорости работы?
Владимир
постоялец
 
Сообщения: 355
Зарегистрирован: 23.08.2007 19:48:39
Откуда: Москва

Re: Размер приложений 0.9.30 в Linux

Сообщение dunin » 30.06.2011 12:26:25

Владимир писал(а):Добавлено спустя 3 минуты 16 секунд:
dunin писал(а):
Владимир писал(а):...при чтении-записи текстовых полей теперь приходится использовать SysToUtf8 и обратно....
Кто-нибудь сталкивался?

Это нормально. :?

Нормально что - увеличение размера или снижение скорости работы?

Я что-то не так процитировал?
Нормально - это "...использовать SysToUtf8..." при работе в Lazarus 0.9.30
Аватара пользователя
dunin
энтузиаст
 
Сообщения: 634
Зарегистрирован: 02.05.2007 13:18:11
Откуда: Тољя††и

Re: Размер приложений 0.9.30 в Linux

Сообщение Владимир » 30.06.2011 12:54:35

Наверно, не ясно изложил.
Изначально вопросов 2 - снижение скорости работы и увеличение размера исполняемого файла.
По поводу 1 - похоже, тормозит работа с БД.
По второму - сам себе отвечаю - это Zeos 2 Мб добавляет!
Владимир
постоялец
 
Сообщения: 355
Зарегистрирован: 23.08.2007 19:48:39
Откуда: Москва

Re: [Решено] Размер приложений 0.9.30 в Linux

Сообщение .wOvAN » 30.06.2011 15:50:35

Тут как бы один ответ,

1. ищите где тормозит.
2. исправляете
3. создаете заплатку
4. постите на багтрекер.
5. убеждаете разработчиков что ваш код поможет.
6. и если они вам поверят то есть шанс что через месяц кто нибудь найдет время его закоммитить.

Поскольку тормозит там много где, придется из разработчика своей программы переквалифицироваться в разработчика лазаруса. :D


ЗЫ По своему опыту скажу, портировал несколько программ с БД на дельфи использующих Zeos в среднем на вскидку работают в разнх местах в 1,5 - 3 раза медленнее.
.wOvAN
постоялец
 
Сообщения: 118
Зарегистрирован: 16.04.2010 06:36:12

Re: [Решено] Размер приложений 0.9.30 в Linux

Сообщение Vadim » 30.06.2011 15:59:47

Владимир
У меня преобразованием кодировок занимается сам сервер БД. Клиент получает текстовые данные уже в нужной ему кодировке. Исторически база в кодировке тоже koi-8r. Два клиента - один работает в кодировке koi-8r, один - ut-8.
Использую ZEOS 6.6.6 и ZEOS 7. Вроде не тормозит. Правда и обработка данных у меня не десятки гигабайт за транзакцию. :)
Vadim
долгожитель
 
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Re: [Решено] Размер приложений 0.9.30 в Linux

Сообщение Ism » 30.06.2011 18:06:01

Господа знают толк в извращениях.

Для mysql
ZConnection.Properties:='codepage=UTF8' И все! Ну или при запуске SET NAMES UTF8;
ZConnection.Properties:='compression=true' (компрессия mysql)

А насчет тормозов, это зависит только от вас. Правда надо учитывать , что zeos любит выгребать сразу все записи из запроса, курсоров не поддерживает
Ism
энтузиаст
 
Сообщения: 908
Зарегистрирован: 06.04.2007 17:36:08

Re: [Решено] Размер приложений 0.9.30 в Linux

Сообщение Владимир » 01.07.2011 18:12:01

Ism писал(а):Господа знают толк в извращениях.

Уважаемый Ism, по поводу извращений.
1. Кодировка БД MySql (по умолчанию вроде) Latin1.
2. Если пользователь хочет читать данные в UTF, то set names utf8 и т.д.
3. Но если локаль системы koi, то хоть усетнэймись...
Итог (по-моему) таков: если система koi и Lazarus UTF, то без SysToUtf и обратно не обойтись.
Рад буду, если не прав.
p.s. Спасибо по Zeos, пересмотрю запросы!
Владимир
постоялец
 
Сообщения: 355
Зарегистрирован: 23.08.2007 19:48:39
Откуда: Москва

Re: [Решено] Размер приложений 0.9.30 в Linux

Сообщение Ism » 01.07.2011 21:20:16

. Но если локаль системы koi, то хоть усетнэймись...

А что такого в koi ? Я работал с таблицами ko8i и cp1251 в базе через SET NAMES UTF8; , все четко работало. Приколы могут начаться, если данные передаются в базу не в правильной кодировке , сервер думает, что это Utf8 и преобразовывает в koi8 а на самом деле это не так.
Ism
энтузиаст
 
Сообщения: 908
Зарегистрирован: 06.04.2007 17:36:08

Re: [Решено] Размер приложений 0.9.30 в Linux

Сообщение Владимир » 04.07.2011 21:32:33

Ism писал(а):
. Но если локаль системы koi, то хоть усетнэймись...

А что такого в koi ? Я работал с таблицами ko8i и cp1251 в базе через SET NAMES UTF8; , все четко работало. Приколы могут начаться, если данные передаются в базу не в правильной кодировке , сервер думает, что это Utf8 и преобразовывает в koi8 а на самом деле это не так.


Доброго!
Значит так. С консоли MySql-Client прекрасно читает кириллицу в koi-8 (да и пишет тоже).
В Lazarus чтение с SetNames=Utf8 (как и CodePage..) дает кракозябры - медицинский факт.
Посему по-прежнему настаиваю, что если в системе koi8, то без SysToUtf8 и обратно не обойтись.
На самом деле, мой вопрос трансформировался по ходу дискуссии - уже ли SysToUtf8 и обратно настолько затратные по времени?
Владимир
постоялец
 
Сообщения: 355
Зарегистрирован: 23.08.2007 19:48:39
Откуда: Москва

Re: [Решено почти] Размер приложений 0.9.30 в Linux

Сообщение Ism » 05.07.2011 15:08:44

То есть вы хотите, чтоб лазарус внутри работал с кодировкой koi8 ? Этого уже никогда не будет, только utf8.
Специально проверил создав таблицу mysql в koi8 , вместе с zeos все работает, никаких крокозябр

Код: Выделить всё
SET NAMES 'utf8';

USE test;

DROP TABLE IF EXISTS table1;
CREATE TABLE table1 (
  id INT(11) UNSIGNED NOT NULL AUTO_INCREMENT,
  column1 VARCHAR(255) CHARACTER SET koi8r COLLATE koi8r_general_ci DEFAULT NULL,
  PRIMARY KEY (id)
)
ENGINE = MYISAM
AUTO_INCREMENT = 5
AVG_ROW_LENGTH = 30
CHARACTER SET utf8
COLLATE utf8_general_ci;

INSERT INTO table1 VALUES
  (3, 'Абырвалг'),
  (4, 'ллл');



если же попытаться писать из dbgrid lazarus в mysql именно в koi8, то конечно будут крокозябры, так как лазарус думает, что это utf8
Хотя если поставить codepage=koi8r , то это сработает (при условии если таблица) , только как вы заставите dbgrid выдавать символы в koi8 ?

В общем предмет проблемы проблемой не является.
Ism
энтузиаст
 
Сообщения: 908
Зарегистрирован: 06.04.2007 17:36:08

Re: [Решено почти] Размер приложений 0.9.30 в Linux

Сообщение Владимир » 05.07.2011 18:54:24

Ism писал(а):В общем предмет проблемы проблемой не является.

Доброго! Да я не спорю, и понимаю, что Lazarus с koi-8 напрямую работать не будет. Я утверждаю, что если в СИСТЕМЕ кодировка koi-8, операция SetName не спасает, только SysToUTF8 и обратно.
p.s. Съехал с Zeos-а на встроенный SQLDBLaz (разрабы вроде его подрихтовали, теперь, например, group by работает как надо)- размер приложения снизился на 1.5 Мб, по быстродействию - субъективно стало получше.
Владимир
постоялец
 
Сообщения: 355
Зарегистрирован: 23.08.2007 19:48:39
Откуда: Москва

Re: [Решено почти] Размер приложений 0.9.30 в Linux

Сообщение Ism » 05.07.2011 20:48:33

что если в СИСТЕМЕ кодировка koi-8


Ничего не понял, что такое "в СИСТЕМЕ" ? В базе mysql , тогда смотри выше. В Lazarus, тогда то же самое. Не понимаю, где нужно перекодировать. В контролах utf8, mysql преобразовывать кодировки умеет.
Я работал с разными кодировками, но ни разу не понадобилось SysToUTF8

если клиент посылает данные в koi, то codepage=koi8r
Ism
энтузиаст
 
Сообщения: 908
Зарегистрирован: 06.04.2007 17:36:08

След.

Вернуться в Lazarus

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

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

Рейтинг@Mail.ru