Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Официальный релиз библиотеки "CachedTexts"
|
|||
|---|---|---|---|
|
#18+
fd00chзато сколько стонов в сторону компилятора delphi, который, якобы, генерит тормозной код Можно было бы проверить работу на старом древнем Delphi 7, но библиотеки не компилятся, если выключить ассемблер. В частности, типы строк смешаны - String и WideString. type UniConv.UnicodeString = WideString; { из модуля UniConv.pas } UnicodeString = UniConv.UnicodeString; описано как: Код: pascal 1. при этом вызов идёт со String: Код: pascal 1. 2. 3. 4. так что с семёркой с отключением ассемблера не склалось, а без отключения ассемблера вот такие результаты после компиляции в Delphi 7: автор1) CachedByteWriter ANSI --> UTF8... 985ms done. 2) CachedByteWriter UTF8 --> UTF8... 813ms done. 3) CachedUTF16Writer --> UTF8... 1844ms done. 4) CachedUTF32Writer --> UTF8... 1781ms done. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.03.2016, 12:52 |
|
||
|
Официальный релиз библиотеки "CachedTexts"
|
|||
|---|---|---|---|
|
#18+
fd00chзато сколько стонов в сторону компилятора delphi, который, якобы, генерит тормозной код Ассемблер сам по себе не обеспечивает преимущества. Если не ошибаюсь, речь шла о сравнении кода Delphi с си++ - компиляторами (например, от Intel). Напомню: компилятор дельфийский написан на сях... ...а IDE вполне себе на Delphi. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.03.2016, 12:57 |
|
||
|
Официальный релиз библиотеки "CachedTexts"
|
|||
|---|---|---|---|
|
#18+
Печень белого медведя, прикол в том, что не только лишь все из стонущих могут написать на ассемблере более производительный код, зато хаять горазд каждый, как и строчить портянки на том же асме Ну а с производителем процессоров соревноваться в компиляторах загнивающей конторе вообще чревато)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.03.2016, 13:04 |
|
||
|
Официальный релиз библиотеки "CachedTexts"
|
|||
|---|---|---|---|
|
#18+
fd00chПечень белого медведя, прикол в том, что не только лишь все из стонущих могут написать на ассемблере более производительный код, зато хаять горазд каждый, как и строчить портянки на том же асме Ну а с производителем процессоров соревноваться в компиляторах загнивающей конторе вообще чревато)) Большинство (за исключением отдельных личностей, вроде ТС) все же понимают, что производительность - вещь далеко не всегда самая важная. Люди вполне себе и C# с Java используют, и FoxPro, и VB c Python. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.03.2016, 13:09 |
|
||
|
Официальный релиз библиотеки "CachedTexts"
|
|||
|---|---|---|---|
|
#18+
Печень белого медведя...а IDE вполне себе на Delphi. Когда-то - может быть, а сейчас это дикая и глючная помесь всего со всем. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.03.2016, 13:21 |
|
||
|
Официальный релиз библиотеки "CachedTexts"
|
|||
|---|---|---|---|
|
#18+
wadmanПечень белого медведя...а IDE вполне себе на Delphi. Когда-то - может быть, а сейчас это дикая и глючная помесь всего со всем. Ой, точно. Начиная с D2005го там треш и угар. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.03.2016, 13:23 |
|
||
|
Официальный релиз библиотеки "CachedTexts"
|
|||
|---|---|---|---|
|
#18+
defecator, При оформлении (шрифт, жирность и пр.) не злоупотребляй, плиз. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.03.2016, 13:42 |
|
||
|
Официальный релиз библиотеки "CachedTexts"
|
|||
|---|---|---|---|
|
#18+
Да начали тут про ассемблер/неассемблер :) Что там в UniConv на ассемблере я уже не помню. Но думаю в данном случае они не влияют, а разница в 16мск - стандартная погрешность GetTickCount. Что до остальных модулей - то вопрос в копировании памяти. На новых интеловских машинах снова стал быстрее REP MOVS. Актуален этот вопрос здесь или нет - я не знаю. Но каким способом копировать память лучше - вопрос открытый. Другого на ассемблере я вроде не писал, старался делать ЯВУ. Небольшое исключение - эмуляция инлайнов на старых компиляторах, но под X64 они поддерживаются. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.03.2016, 17:20 |
|
||
|
Официальный релиз библиотеки "CachedTexts"
|
|||
|---|---|---|---|
|
#18+
SOFT FOR YOUвопрос в копировании памяти. На новых интеловских машинах снова стал быстрее REP MOVS. из чего следует сделать вывод, что писать стоит на паскале, имхо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.03.2016, 18:53 |
|
||
|
Официальный релиз библиотеки "CachedTexts"
|
|||
|---|---|---|---|
|
#18+
defecator, Нет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.03.2016, 19:48 |
|
||
|
Официальный релиз библиотеки "CachedTexts"
|
|||
|---|---|---|---|
|
#18+
SOFT FOR YOUdefecator, НетА на чём тогда? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.03.2016, 19:51 |
|
||
|
Официальный релиз библиотеки "CachedTexts"
|
|||
|---|---|---|---|
|
#18+
GatorSOFT FOR YOUdefecator, НетА на чём тогда? ТС очень любит ассемблер, вот только ассемблер не любит его, судя по простейшим тестам его же библиотеки ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.03.2016, 20:04 |
|
||
|
Официальный релиз библиотеки "CachedTexts"
|
|||
|---|---|---|---|
|
#18+
defecator, Нет :) Я расцениваю ассемблер как один из инструментов. ЯВУ транслируется в набор машинных команд, ассемблер транслируется в набор машинных команд, просто на ассемблере можно сделать некоторые вещи тоньше. В данном случае речь в первую очередь идёт о копировании памяти. А там на одних машинах могут быть одни результаты, на вторых - другие. И это отличная пища для размышлений, за обнаружение которой тебе спасибо! Кстати если есть возможность - выложи пожалуйста различные варианты с/без ассемблера в исходниках и бинарниках под 2 платформы: x86 и x64. Можно будет погонять на разных машинах, потрейсить дизасм - и в итоге придти к какому-то оптимальному решению, для большинства новых процессоров. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.03.2016, 23:07 |
|
||
|
Официальный релиз библиотеки "CachedTexts"
|
|||
|---|---|---|---|
|
#18+
SOFT FOR YOUМожно будет погонять на разных машинах, потрейсить дизасм - и в итоге придти к какому-то оптимальному решению, для большинства новых процессоровя ранее вопрос задавал, ты фасткодеров обогнал чтоли? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.03.2016, 09:21 |
|
||
|
Официальный релиз библиотеки "CachedTexts"
|
|||
|---|---|---|---|
|
#18+
vavan, Ты имеешь ввиду их реализацию Move? Нет, здесь другая специфика. У них Move имеет универсальное применение, а в данном случае речь идёт о копировании небольшого ASCII буфера на стеке в буфер записи (CachedWriter). И в данном тесте речь идёт о числах от 1 до 1000, т.е. копирование от 1 до 4 байт. Если я ничего не путаю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.03.2016, 10:34 |
|
||
|
Официальный релиз библиотеки "CachedTexts"
|
|||
|---|---|---|---|
|
#18+
SOFT FOR YOUТы имеешь ввиду их реализацию Move?да, я о fastmove например от John O'Harrow. думал ты значительные куски разом копируешь SOFT FOR YOUв данном случае речь идёт о копировании небольшого ASCII буфера на стеке в буфер записи (CachedWriter). И в данном тесте речь идёт о числах от 1 до 1000, т.е. копирование от 1 до 4 байттакие маленькие объемы тогда вроде ч/з movzx/mov делались а куда там rep девать?? SOFT FOR YOUЕсли я ничего не путаюне знай, ты ж писал, а я не смотрел ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.03.2016, 10:45 |
|
||
|
Официальный релиз библиотеки "CachedTexts"
|
|||
|---|---|---|---|
|
#18+
vavan, Надо разбираться. Асм-вставки, если я не путаю - сделаны как раз для того, чтобы не дергать по таким вещам стандартный Move, эта тема работает для 0..32 байтов. В случае с x64, там вообще ничего не ассемблировано, тем более фесткода. Все сделано в лоб, тупо. И на этом тесте такой подход оказался выгоднее. Но это не значит, что в целом вопрос копирования памяти не стоит пересматривать и подбирать более оптимальный вариант. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.03.2016, 10:58 |
|
||
|
Официальный релиз библиотеки "CachedTexts"
|
|||
|---|---|---|---|
|
#18+
Ошибка! Вообщем в UTF16String. toFloat . Число 5.444123456e+300 конвертируется, но если экспа уже 301 и более - нет. Тоже самое с отрицательной экспой. У отрицательной кстати ещё ненормальные числа есть, которые E-314 аж, Power10 их может делать, но прикол с Power10 в том, что иногда у него цепочка зависимости и нужно сделать инструкцию pause после него, а иногда не нужно, в зависимости от числа и степени, надо копать куда-то. Из-за этого скорость скачет в 2(!) раза туда-сюда в зависимости от числа [у меня по меньшей мере]. Читал тему, никакого асма не видел в юнитах(так, пару вставок). Хотите проблем, пожалуйста изврат едишн: Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.03.2016, 18:46 |
|
||
|
Официальный релиз библиотеки "CachedTexts"
|
|||
|---|---|---|---|
|
#18+
Кар-Кар, Спасибо за реакцию и тестирование. В целом - это не ошибка, а заложенное ограничение. Я обратил внимание, что под x64 (стандартная) функция на определённой экспоненте вообще вылетает с эксепшном. И оно не намного больше 300. Кроме того библиотека заточена на максимальную производительность и длину экспоненты в символах тоже имело смысл ограничить. Кстати у меня такие числа переводятся во Float точнее, чем в стандартной либе по Power10. А тем более под x64. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.03.2016, 19:17 |
|
||
|
Официальный релиз библиотеки "CachedTexts"
|
|||
|---|---|---|---|
|
#18+
SOFT FOR YOUу меня такие числа переводятся во Float точнеехотелось бы услышать методику выявления точности ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.03.2016, 21:23 |
|
||
|
Официальный релиз библиотеки "CachedTexts"
|
|||
|---|---|---|---|
|
#18+
Bred eFeM, Берём строку, например '5.444123456e+300' Получаем из неё Float обычным образом и с помощью CachedString Потом смотрим дельту числа-в-строке и возвращаемого флоата Где дельта меньше - там и точнее ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.03.2016, 22:47 |
|
||
|
Официальный релиз библиотеки "CachedTexts"
|
|||
|---|---|---|---|
|
#18+
Печень белого медведяНапомню: компилятор дельфийский написан на сях... Пруф? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.03.2016, 00:29 |
|
||
|
Официальный релиз библиотеки "CachedTexts"
|
|||
|---|---|---|---|
|
#18+
Квейд, Если можно без офтопиков ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.03.2016, 07:14 |
|
||
|
Официальный релиз библиотеки "CachedTexts"
|
|||
|---|---|---|---|
|
#18+
SOFT FOR YOU, я как бы не придираюсь, но всё же интересно: смотрим дельту числа-в-строке и возвращаемого флоататипа так: Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.03.2016, 10:51 |
|
||
|
|

start [/forum/topic.php?fid=58&msg=39189000&tid=2037462]: |
0ms |
get settings: |
7ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
157ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
58ms |
get tp. blocked users: |
1ms |
| others: | 252ms |
| total: | 504ms |

| 0 / 0 |
