Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2013.11.03;
Скачать: [xml.tar.bz2];

Вниз

ВУЗ для IT специалиста: взгляд изнутри   Найти похожие ветки 

 
картман ©   (2013-05-16 16:25) [120]


> DevilDevil ©   (16.05.13 15:34) [101]


>
> Смысл этого метода в том, чтобы скопировать кусок памяти
> во внутренний буфер, применяя ряд условий, немного логики.

тут вроде речь не идет о ЯП, не так ли?

 
Данный бенчмарк выполняет запись 100мб текстового файла.
...
Так вот раньше этот метод был реализован на ЯВУ и реализация
> выполнялась больше секунды. Сейчас она частично переписана
> на ассемблер и выполняется 265 миллисекунд


а у меня даже SSD не пишет со скоростью 400Мб/сек, что за железо? Даже есть за 156мсек - 640 Мб/сек, шикарно. Есть уверенность, что измеряется скорость записи на диск?


 
DevilDevil ©   (2013-05-16 16:31) [121]

Удалено модератором


 
Ega23 ©   (2013-05-16 16:31) [122]

Удалено модератором


 
DevilDevil ©   (2013-05-16 16:35) [123]

> картман ©   (16.05.13 16:25) [120]

ты меня попросил описать, сколько можно выиграть производительности, используя ассемблер. Я привёл пример. Что не так

По поводу диска... очевидно он пишет в файловый или дисковый кеш. Ибо диски с такой скоростью писаться не умеют. Но локальную задачу модификации внутреннего буфера очевидно он выполняет в несколько раз быстрее. Ты по прежнему уверен, что разница между ассемблером и ЯВУ (Delphi) невелика ? )))


 
DevilDevil ©   (2013-05-16 16:36) [124]

> Ega23 ©   (16.05.13 16:31) [122]

> Прикольно. А при чём тут я?

это не ты мучил FTS1Intersect ?


 
Romkin ©   (2013-05-16 16:37) [125]


> а у меня даже SSD не пишет со скоростью 400Мб/сек, что за
> железо? Даже есть за 156мсек - 640 Мб/сек, шикарно. Есть
> уверенность, что измеряется скорость записи на диск?

http://www.nix.ru/support/bench/goods_compare.html?test_id=192
диск дает скорость 100-200 Мб/сек. Поэтому оптимизацию следовало остановить по достижении данной скорости. Разумеется, то, что сделано, оптимизирует общение с кешем ОС, а посему бессмысленно.


 
Ega23 ©   (2013-05-16 16:40) [126]

Удалено модератором


 
DevilDevil ©   (2013-05-16 16:41) [127]

> Romkin ©   (16.05.13 16:37) [125]

что что сделано - оптимизирует наполнение внутреннего буфера
связь с кешем ОС здесь на уровне стандартных АПИ-функций
никакого хинта для-подсказки типа "не пиши на диск, пиши в память" тут нет

я не знаю какой процент времени тут идёт на обмен памятью между внутренним буфером и ОС
факт в том, что в данном случае разница между ЯВУ-реализацией и асм-реализацией по производительности в разы. Или этот факт ты тоже станешь отрицать ? )


 
Inovet ©   (2013-05-16 16:45) [128]

> [126] Ega23 ©   (16.05.13 16:40)
> потому как люди чаще всего ищут нестрогое совпадение, причём
> ещё и case insensitive.
...
> А ещё есть такая хрень, как автоподстановка, которая при
> варианте хранения данных в хэш-таблице работать как бэ не будет...

Плохая программа, плохие пользователи, оптимизировать нечего.


 
Ega23 ©   (2013-05-16 16:45) [129]


> это не ты мучил FTS1Intersect ?


У нас нет FTS1Intersect. А когда были недолгие эксперименты с ним, то, ЕМНИП, основная проблема была в реаллоках памяти при сборке сортированных данных.


 
Romkin ©   (2013-05-16 16:46) [130]


> факт в том, что в данном случае разница между ЯВУ-реализацией
> и асм-реализацией по производительности в разы. Или этот
> факт ты тоже станешь отрицать ? )

Нет. В два-три раза (ну пять) следует ожидать прироста при переходе на ассемблер. Вот только чаще всего это не нужно. Слишком маленький прирост.


 
картман ©   (2013-05-16 16:47) [131]


> DevilDevil ©   (16.05.13 16:35) [123]


> По поводу диска... очевидно он пишет в файловый или дисковый
> кеш. Ибо диски с такой скоростью писаться не умеют.


> ты меня попросил описать, сколько можно выиграть производительности,
>  используя ассемблер. Я привёл пример. Что не так

не понятно, в чем оптимизация, если твой код измеряет скорость записи не на диск - предполагалось же, что оптимизация коснется именно скорости записи на диск. Или я ошибаюсь?


 
DevilDevil ©   (2013-05-16 16:48) [132]

Удалено модератором


 
Ega23 ©   (2013-05-16 16:50) [133]

Удалено модератором


 
DevilDevil ©   (2013-05-16 16:53) [134]

> Romkin ©   (16.05.13 16:46) [130]

> Нет. В два-три раза (ну пять) следует ожидать прироста при
> переходе на ассемблер. Вот только чаще всего это не нужно.
>  Слишком маленький прирост.


4 раза это маленький прирост ?
я не агитирую использование ассемблера повсюду
я указываю на явную возможность выжать больше производительсти


 
DevilDevil ©   (2013-05-16 16:58) [135]

> картман ©   (16.05.13 16:47) [131]

> не понятно, в чем оптимизация, если твой код измеряет скорость
> записи не на диск - предполагалось же, что оптимизация коснется
> именно скорости записи на диск. Или я ошибаюсь?


я очень хотел выжать побольше производительности из реализации взаимодействия с диском. Но от стандартного подхода я далеко не ушёл

самая ощутимая оптимизация в том, что используется внутренний буфер. (кстати посмотри разницу с TFileStream-реализацией)

а вот способ заполнения этого внутренного буфера оказался важным. Есть Fast-вариант. А есть Simple вариант, с явным вызовом функции Write(). Так вот если раньше там вызывался системный Move(), то сейчас частоиспользуемая часть функции - на ассемблере. Поэтому и производительность скакнула


 
Ega23 ©   (2013-05-16 16:59) [136]


> 4 раза это маленький прирост ?


Пять миллисекунд против одной миллисекунды - это оптимизация на 4 миллисекунды. При этом асм-кода пишется уйма, на него затрачивается время, его надо как-то поддерживать, кому-то потом (если ты не дай Б-г уйдёшь) в нём надо разбираться. А потом ещё переводить на новую разрядность, будь она неладна.
Ради несчастных четырёх миллисекунд.

В 99.9999% это нафиг не нужно никому.


 
DevilDevil ©   (2013-05-16 17:00) [137]

Удалено модератором


 
Ega23 ©   (2013-05-16 17:01) [138]


> что увеличу производительность на 50%


Производительность чего именно?


 
DevilDevil ©   (2013-05-16 17:01) [139]

> Ega23 ©   (16.05.13 16:59) [136]

> В 99.9999% это нафиг не нужно никому.

это нужно там, где нужна производительность
там где код выполняет 1 или 5 милисекунд - производительность не нужна


 
DevilDevil ©   (2013-05-16 17:02) [140]

> Ega23 ©   (16.05.13 17:01) [138]
>
> Производительность чего именно?


поисковой системы


 
Kerk ©   (2013-05-16 17:03) [141]

Удалено модератором


 
Romkin ©   (2013-05-16 17:03) [142]


> 4 раза это маленький прирост ?я не агитирую использование
> ассемблера повсюдуя указываю на явную возможность выжать
> больше производительсти

Да, маленький. Тем более что он в данном случае скорее всего иллюзорен, попробуй запустить сравнение при записи 10Гб. Если же требуется просто сбросить сотню метров и продолжить, то это можно сделать гораздо быстрее.

Производительность надо "выжимать" там, где это необходимо, и переход на ассемблер - крайний выход, это последнее что следует делать.


 
DevilDevil ©   (2013-05-16 17:06) [143]

Удалено модератором


 
картман ©   (2013-05-16 17:06) [144]


>  DevilDevil ©   (16.05.13 16:58) [135]


> я очень хотел выжать побольше производительности из реализации
> взаимодействия с диском. Но от стандартного подхода я далеко
> не ушёл
>
> самая ощутимая оптимизация в том, что используется внутренний
> буфер. (кстати посмотри разницу с TFileStream-реализацией)
>
> а вот способ заполнения этого внутренного буфера оказался
> важным.

заметь - опять ты ничего не сказал про язык. Я настаиваю, язык - вторичен.
И потом, реализованная концепция не бог весть какая сложная, чтобы на ее примере можно было бы что-то безапелляционно утверждать


 
Romkin ©   (2013-05-16 17:07) [145]


> зри в кореньв данном случае оптимизация в 4 раза была не
> за счёт взаимодействия с диском ОСа за счёт того, что стандартные
> ЯВУ-средства были заменены ассемблеромферштейн ?

Тест на запись 10Гб провел?


 
Ega23 ©   (2013-05-16 17:08) [146]


> поисковой системы

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


 
картман ©   (2013-05-16 17:08) [147]


> а за счёт того, что стандартные ЯВУ-средства были заменены
> ассемблером

ты ошибаешься


 
DevilDevil ©   (2013-05-16 17:08) [148]

Удалено модератором


 
Игорь Шевченко ©   (2013-05-16 17:08) [149]

Лучше все-таки в тему ветки. Иначе судьба ваши прений предсказуема - закрытие и баны активных участников


 
картман ©   (2013-05-16 17:09) [150]

Удалено модератором


 
DevilDevil ©   (2013-05-16 17:11) [151]

Удалено модератором


 
DevilDevil ©   (2013-05-16 17:12) [152]

Удалено модератором


 
картман ©   (2013-05-16 17:14) [153]

Удалено модератором


 
Cobalt ©   (2013-05-16 17:15) [154]

Поддерживаю модель
- Техникум выпускает кодеров
- Вуз - для повышения квалификации.

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


 
DevilDevil ©   (2013-05-16 17:16) [155]

> картман ©   (16.05.13 17:14) [153]

> Дабы сократить количество пинаний очевидного туда-сюда -
>  что там с записью 10Гб?


ЯВУ будет по прежнему медленнее ассемблера
Селяви


 
Anatoly Podgoretsky ©   (2013-05-16 17:17) [156]

> Romkin  (16.05.2013 16:46:10)  [130]

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


 
DevilDevil ©   (2013-05-16 17:20) [157]

> картман ©   (16.05.13 17:14) [153]

а вообще исходники открыты
http://sourceforge.net/projects/cachedbuffers/

замути тест на 100Гб с ассемблерной реализацией и с ЯВУ-реализацией
(смотри метод Write(), дифайн PURE_PASCAL)


 
картман ©   (2013-05-16 17:21) [158]


> DevilDevil ©   (16.05.13 17:16) [155]
>
> > картман ©   (16.05.13 17:14) [153]
>
> > Дабы сократить количество пинаний очевидного туда-сюда
> -
> >  что там с записью 10Гб?
>
> ЯВУ будет по прежнему медленнее ассемблера

Будет. На сколько?


 
Anatoly Podgoretsky ©   (2013-05-16 17:23) [159]

> Romkin  (16.05.2013 17:03:22)  [142]

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


 
картман ©   (2013-05-16 17:23) [160]


> DevilDevil ©   (16.05.13 17:20) [157]
>
> > картман ©   (16.05.13 17:14) [153]
>
> а вообще исходники открыты

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



Страницы: 1 2 3 4 5 6 7 8 вся ветка

Форум: "Прочее";
Текущий архив: 2013.11.03;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.82 MB
Время: 0.034 c
4-1268010549
JohnJ
2010-03-08 04:09
2013.11.03
закрепить панель задач


3-1293286581
caesar_88
2010-12-25 17:16
2013.11.03
База данных "План - рейтинг"


15-1368704471
sniknik
2013-05-16 15:41
2013.11.03
Клиент не работает под wine (убунта) ...


2-1360298852
Andrey K
2013-02-08 08:47
2013.11.03
Вкладка Diagram


4-1268135204
somio
2010-03-09 14:46
2013.11.03
Как узнать права текущего пользователя Windows





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский