[Решено] Размер приложений 0.9.30 в Linux
Модератор: Модераторы
[Решено] Размер приложений 0.9.30 в Linux
Всем доброго!
Вопросы:
1. В 0.9.24 размер приложения составлял около 5.5 Мб, после перехода на 0.9.30 - вырос до 7.5 Мб.
2. Пользователи утверждают, что все стало медленнее работать (субъективно).
Изменения - был KDE, теперь XFCE.
Исторически сложилось так, что кодировка системы и БД (MySql-5.1) koi-8r, так что при чтении-записи текстовых полей теперь приходится использовать SysToUtf8 и обратно. Доступ к БД через Zeos 6.6.5.
Кто-нибудь сталкивался?
Вопросы:
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 раза.
-
MageSlayer
- постоялец
- Сообщения: 216
- Зарегистрирован: 07.09.2006 12:30:44
Думаю, что без уточнения какие компоненты вы используете, какие алгоритмы/функции теперь тормозят, этот вопрос не имеет смысла.
Сижу на версии svn как Fpc, так и Lazarus. Особенного роста размера проекта за последние 2 года не заметил.
Сижу на версии svn как Fpc, так и Lazarus. Особенного роста размера проекта за последние 2 года не заметил.
MageSlayer писал(а):Думаю, что без уточнения какие компоненты вы используете, какие алгоритмы/функции теперь тормозят, этот вопрос не имеет смысла.
Сижу на версии svn как Fpc, так и Lazarus. Особенного роста размера проекта за последние 2 года не заметил.
Спасибо, никакой экзотики не использую, компоненты все штатные (наелся в свое время с MaskEdit...). По поводу увеличения размера исполняемого файла - выросли прилично даже простенькие приложения (панель, грид и пара кнопок).
Похоже, тормозит работа с БД.
Добавлено спустя 3 минуты 16 секунд:
dunin писал(а):Владимир писал(а):...при чтении-записи текстовых полей теперь приходится использовать SysToUtf8 и обратно....
Кто-нибудь сталкивался?
Это нормально.
Нормально что - увеличение размера или снижение скорости работы?
- dunin
- энтузиаст
- Сообщения: 634
- Зарегистрирован: 02.05.2007 13:18:11
- Откуда: Тољя††и
- Контактная информация:
Владимир писал(а):Добавлено спустя 3 минуты 16 секунд:dunin писал(а):Владимир писал(а):...при чтении-записи текстовых полей теперь приходится использовать SysToUtf8 и обратно....
Кто-нибудь сталкивался?
Это нормально.
Нормально что - увеличение размера или снижение скорости работы?
Я что-то не так процитировал?
Нормально - это "...использовать SysToUtf8..." при работе в Lazarus 0.9.30
Наверно, не ясно изложил.
Изначально вопросов 2 - снижение скорости работы и увеличение размера исполняемого файла.
По поводу 1 - похоже, тормозит работа с БД.
По второму - сам себе отвечаю - это Zeos 2 Мб добавляет!
Изначально вопросов 2 - снижение скорости работы и увеличение размера исполняемого файла.
По поводу 1 - похоже, тормозит работа с БД.
По второму - сам себе отвечаю - это Zeos 2 Мб добавляет!
Тут как бы один ответ,
1. ищите где тормозит.
2. исправляете
3. создаете заплатку
4. постите на багтрекер.
5. убеждаете разработчиков что ваш код поможет.
6. и если они вам поверят то есть шанс что через месяц кто нибудь найдет время его закоммитить.
Поскольку тормозит там много где, придется из разработчика своей программы переквалифицироваться в разработчика лазаруса.
ЗЫ По своему опыту скажу, портировал несколько программ с БД на дельфи использующих Zeos в среднем на вскидку работают в разнх местах в 1,5 - 3 раза медленнее.
1. ищите где тормозит.
2. исправляете
3. создаете заплатку
4. постите на багтрекер.
5. убеждаете разработчиков что ваш код поможет.
6. и если они вам поверят то есть шанс что через месяц кто нибудь найдет время его закоммитить.
Поскольку тормозит там много где, придется из разработчика своей программы переквалифицироваться в разработчика лазаруса.
ЗЫ По своему опыту скажу, портировал несколько программ с БД на дельфи использующих Zeos в среднем на вскидку работают в разнх местах в 1,5 - 3 раза медленнее.
Владимир
У меня преобразованием кодировок занимается сам сервер БД. Клиент получает текстовые данные уже в нужной ему кодировке. Исторически база в кодировке тоже koi-8r. Два клиента - один работает в кодировке koi-8r, один - ut-8.
Использую ZEOS 6.6.6 и ZEOS 7. Вроде не тормозит. Правда и обработка данных у меня не десятки гигабайт за транзакцию.
У меня преобразованием кодировок занимается сам сервер БД. Клиент получает текстовые данные уже в нужной ему кодировке. Исторически база в кодировке тоже koi-8r. Два клиента - один работает в кодировке koi-8r, один - ut-8.
Использую ZEOS 6.6.6 и ZEOS 7. Вроде не тормозит. Правда и обработка данных у меня не десятки гигабайт за транзакцию.
Господа знают толк в извращениях.
Для mysql
ZConnection.Properties:='codepage=UTF8' И все! Ну или при запуске SET NAMES UTF8;
ZConnection.Properties:='compression=true' (компрессия mysql)
А насчет тормозов, это зависит только от вас. Правда надо учитывать , что zeos любит выгребать сразу все записи из запроса, курсоров не поддерживает
Для mysql
ZConnection.Properties:='codepage=UTF8' И все! Ну или при запуске SET NAMES UTF8;
ZConnection.Properties:='compression=true' (компрессия mysql)
А насчет тормозов, это зависит только от вас. Правда надо учитывать , что zeos любит выгребать сразу все записи из запроса, курсоров не поддерживает
Ism писал(а):Господа знают толк в извращениях.
Уважаемый Ism, по поводу извращений.
1. Кодировка БД MySql (по умолчанию вроде) Latin1.
2. Если пользователь хочет читать данные в UTF, то set names utf8 и т.д.
3. Но если локаль системы koi, то хоть усетнэймись...
Итог (по-моему) таков: если система koi и Lazarus UTF, то без SysToUtf и обратно не обойтись.
Рад буду, если не прав.
p.s. Спасибо по Zeos, пересмотрю запросы!
. Но если локаль системы koi, то хоть усетнэймись...
А что такого в koi ? Я работал с таблицами ko8i и cp1251 в базе через SET NAMES UTF8; , все четко работало. Приколы могут начаться, если данные передаются в базу не в правильной кодировке , сервер думает, что это Utf8 и преобразовывает в koi8 а на самом деле это не так.
Ism писал(а):. Но если локаль системы koi, то хоть усетнэймись...
А что такого в koi ? Я работал с таблицами ko8i и cp1251 в базе через SET NAMES UTF8; , все четко работало. Приколы могут начаться, если данные передаются в базу не в правильной кодировке , сервер думает, что это Utf8 и преобразовывает в koi8 а на самом деле это не так.
Доброго!
Значит так. С консоли MySql-Client прекрасно читает кириллицу в koi-8 (да и пишет тоже).
В Lazarus чтение с SetNames=Utf8 (как и CodePage..) дает кракозябры - медицинский факт.
Посему по-прежнему настаиваю, что если в системе koi8, то без SysToUtf8 и обратно не обойтись.
На самом деле, мой вопрос трансформировался по ходу дискуссии - уже ли SysToUtf8 и обратно настолько затратные по времени?
То есть вы хотите, чтоб лазарус внутри работал с кодировкой koi8 ? Этого уже никогда не будет, только utf8.
Специально проверил создав таблицу mysql в koi8 , вместе с zeos все работает, никаких крокозябр
если же попытаться писать из dbgrid lazarus в mysql именно в koi8, то конечно будут крокозябры, так как лазарус думает, что это utf8
Хотя если поставить codepage=koi8r , то это сработает (при условии если таблица) , только как вы заставите dbgrid выдавать символы в koi8 ?
В общем предмет проблемы проблемой не является.
Специально проверил создав таблицу 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 писал(а):В общем предмет проблемы проблемой не является.
Доброго! Да я не спорю, и понимаю, что Lazarus с koi-8 напрямую работать не будет. Я утверждаю, что если в СИСТЕМЕ кодировка koi-8, операция SetName не спасает, только SysToUTF8 и обратно.
p.s. Съехал с Zeos-а на встроенный SQLDBLaz (разрабы вроде его подрихтовали, теперь, например, group by работает как надо)- размер приложения снизился на 1.5 Мб, по быстродействию - субъективно стало получше.
что если в СИСТЕМЕ кодировка koi-8
Ничего не понял, что такое "в СИСТЕМЕ" ? В базе mysql , тогда смотри выше. В Lazarus, тогда то же самое. Не понимаю, где нужно перекодировать. В контролах utf8, mysql преобразовывать кодировки умеет.
Я работал с разными кодировками, но ни разу не понадобилось SysToUTF8
если клиент посылает данные в koi, то codepage=koi8r
