Вверх ↑
Этот топик читают: Гость
Ответов: 16884
Рейтинг: 1239
#61: 2009-04-22 13:39:03 ЛС | профиль | цитата
Поставил твою строку, убрал ";" - орет. Что там у тебя не знаю. (Не подтверждается )

Для 10 000 строк
Минимальное среднее время, после 10-ти нажатий, 2.55 сек.
Для StringTable - 3.0 сек
Для StringTableMT - 5.8 сек

А для 100 000 строк:
StringTable - 30.0 сек
StringTableMT - не дождался ( минут пять ждал. Надоело.) - черепаха, она и в Африке черепаха.
MTStrTbl - 25 сек
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Разработчик
Ответов: 26163
Рейтинг: 2127
#62: 2009-04-22 13:58:45 ЛС | профиль | цитата
Tad писал(а):
Что там у тебя не знаю

Сохранить забыл, вот что

Действительно, орет.

Получается около 25 % прироста. Весьма неплохо.

И больше, чем в два раза в сравнении со StringTableMT
карма: 22

0
Ответов: 16884
Рейтинг: 1239
#63: 2009-04-22 14:02:37 ЛС | профиль | цитата
nesco писал(а):
Получается около 25 % прироста
по сравнению с чем ?
------------ Дoбавленo в 14.03:
Мой предыдущий пост посмотри еще раз
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Разработчик
Ответов: 26163
Рейтинг: 2127
#64: 2009-04-22 14:16:19 ЛС | профиль | цитата
Tad писал(а):
по сравнению с чем ?


MTStrTbl в сравнении со стандартной, в последнем случае (25 против 30), получается 17%
карма: 22

0
Ответов: 16884
Рейтинг: 1239
#65: 2009-04-22 14:52:46 ЛС | профиль | цитата

Кто-то из нас точно не бухгалтер
Поделись своей формулой

Вот моя:
Если 25 и 30, то выигрыш 5 секунд
5 сек по отношению к 30 = (5/30)*100= ~17%
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Разработчик
Ответов: 26163
Рейтинг: 2127
#66: 2009-04-22 15:19:46 ЛС | профиль | цитата
Tad,

Я от 100 отнял 87 (25/30) и получил 27, бывает (отрывают меня в отпуске по-мелочам)

Другое прикольно, как Dilma получил 25%, мне непонятно, я там чего только не выкидывал, но такого результата получить не удалось
карма: 22

0
Ответов: 16884
Рейтинг: 1239
#67: 2009-04-22 15:31:14 ЛС | профиль | цитата
С кодами Dilma у меня результат 30 - 28.4 = 1.6 сек разницы. Только что проверил повторно.
Может он считал от результатов исходных ( до переделки) кодов ?

карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Разработчик
Ответов: 26163
Рейтинг: 2127
#68: 2009-04-22 15:38:14 ЛС | профиль | цитата
Tad, осталось последнее -- перевести веcь этот метод на asm, тогда еще можно выдавить быстродействие
карма: 22

0
Ответов: 16884
Рейтинг: 1239
#69: 2009-04-22 15:40:34 ЛС | профиль | цитата
nesco писал(а):
перевести веcь этот метод на asm
А зачем лишняя головная боль?
Мы в тесте крутили по 10 000 и 100 000 строк. В реальности такого, при умном програмирующем, никогда не будет.
А с одним словом "nesco" разница всего 28-24=4сек.

карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Разработчик
Ответов: 26163
Рейтинг: 2127
#70: 2009-04-22 15:43:58 ЛС | профиль | цитата
Ха, там 5 сек, а тут 4 сек, ох и большое различие. Но я тебе про то и говорил, что время парсирования зависит от длины общей строки
------------ Дoбавленo в 15.46:
Tad писал(а):
А зачем лишняя головная боль?

А в чем проблема, но когда-то учиться надо и переходить на asm. Ради интереса можно попробовать, если получится, то посмотреть, каков выигрыш
карма: 22

1
Голосовали:Sniper36
Администрация
Ответов: 15295
Рейтинг: 1519
#71: 2009-04-22 18:05:18 ЛС | профиль | цитата
nesco писал(а):
но когда-то учиться надо и переходить на asm

кто это сказал? От того, что KOL так написан данный подход не делается стандартом де факто. Программирование под GUI на Assembler это трата своего времени и чужого без гарантии получения выигрыша от его использования.

ну и наконец это совершенно бессмыслено в данном случае уже потому, что узким местом является вовсе не код метода, а обращение к таблице через сообщения Windows.
карма: 27
0
Разработчик
Ответов: 26163
Рейтинг: 2127
#72: 2009-04-22 19:30:35 ЛС | профиль | цитата
Dilma писал(а):
без гарантии получения выигрыша от его использования

Мда... Ну, тогда -- пес с ним, с asm
карма: 22

0
Администрация
Ответов: 15295
Рейтинг: 1519
#73: 2009-04-22 20:14:28 ЛС | профиль | цитата
Dilma писал(а):
без гарантии получения выигрыша от его использования.

поясню эту мысть на всякий случай - современный хороший компилятор содержит в себе все необходимые средства оптимизации кода самые главные из которых
- разворачивание циклов
- вынесение выражений из циклов
- выделение общих выражений
- распределение локации переменных в зависимости от их времен жизни
- и прочее менее важное

в итоге после всех этих операций конечный код на ассемблере может не совпадать с тем, что написал программер за счет проделывания за него той работы, которую программист в силу своей человеческой природы не мог или не захотел делать. Т.е. код с яву фактически на 99% близок к машинному. Однако когда неискошенный в этом деле программист садиться за ручное написание этого идела путем ассемблерных вставок, то почти наверняка у него получится хрень, которая будет работать медленнее исходного варианта или отъедать больше машинных ресурсов. Соответственно чем сложнее целевая архитектура(x86 - сегодня самая простая наверно), тем хуже ассемблерный код не профессионального программиста, пишущего под нее.

PS: конечно в случае с FPC это все может может не очень соответствовать дествительности...
карма: 27
0
73
Сообщение
...
Прикрепленные файлы
(файлы не залиты)