Re: Удаление лишних пробелов | |
---|---|
_vit Автор Сообщений: 5175 Дата регистрации: 29.07.2002 |
Давай по пунктам, что не так с ACPI у него. Ну хотя бы один для начала. |
Re: Удаление лишних пробелов | |
---|---|
_vit Автор Сообщений: 5175 Дата регистрации: 29.07.2002 |
Intel® 64 and IA-32 Architectures Software Developer’s Manual 17.15 TIME-STAMP COUNTER Цитата: www.intel.com |
Re: Удаление лишних пробелов | |
---|---|
spinz Сообщений: 5263 Дата регистрации: 21.01.2016 |
Да у него все с ACPI не так. Цитата: Начнем с того,что STPCLK# - это всегда ACPI S1, проц без тактирования молча спит И TSC не увеличивается. Про Deep Sleep это вообше какая-то сказка - это уровень между S4 и S5, когда спит вообще вся система |
Re: Удаление лишних пробелов | |
---|---|
spinz Сообщений: 5263 Дата регистрации: 21.01.2016 |
Поверь мне, я знаю что такое сериализация на x86. Я не могу понять к чему ты это здесь |
Re: Удаление лишних пробелов | |
---|---|
_vit Автор Сообщений: 5175 Дата регистрации: 29.07.2002 |
Я о использовании CPUID, LFENCE, MFENCE перед RDTSC или использовании других методов для предотвращения "Out of Order Execution" |
Re: Удаление лишних пробелов | |
---|---|
_vit Автор Сообщений: 5175 Дата регистрации: 29.07.2002 |
Про общие состояния системы S у него вообще ни слова. Он говорит о состояниях процессора - С. Я вчера не поленился и проверил по документации этот пятый пункт и косяков не обнаружил. Так что можно читать дальше.;) |
Re: Удаление лишних пробелов | |
---|---|
spinz Сообщений: 5263 Дата регистрации: 21.01.2016 |
В каких-то случаях да, это имеет смысл.Но не когда мы считаем миллионы тактов. |
Re: Удаление лишних пробелов | |
---|---|
spinz Сообщений: 5263 Дата регистрации: 21.01.2016 |
Хм, нашел старые доки интела по ICH7. На том железе действительно была поддержка С2 и С3, причем только для мобильных платформ Цитата: На более поздних чипсетах этого уже нет Цитата: Цитата: |
Re: Удаление лишних пробелов | |
---|---|
Igor Korolyov Сообщений: 34580 Дата регистрации: 28.05.2002 |
А как же call? Он и есть push Хотя с точки зрения медсТраха замена push на call должно быть каким-то особого рода извращением "покричать и вынуть" ------------------ WBR, Igor |
Re: Удаление лишних пробелов | |
---|---|
Simple777 Сообщений: 33855 Дата регистрации: 05.11.2006 |
Новая категория прона? |
Re: Удаление лишних пробелов | |
---|---|
Igor Korolyov Сообщений: 34580 Дата регистрации: 28.05.2002 |
Речь лишь про то что TSC весьма ненадёжный метод измерения чего либо. Особенно "миллионнотактного". От "времени" прямой зависимости нет, и даже от собственно "нагрузки алгоритма" тоже не будет, т.к. сколько переключений контекста произойдёт за эти самые прошедшие миллионы тактов? ------------------ WBR, Igor |
Re: Удаление лишних пробелов | |
---|---|
spinz Сообщений: 5263 Дата регистрации: 21.01.2016 |
Ну примерно столько, сколько и при выполнении кода занимающего на десяток млн тактов больше. Поэтому для сравнения производительности именно ассемблерного кода в рассматриваемом - не в общем - случае испльзование RDTSC вполне допустимо. В тех случаях когда надо замерить время выполнения действительно точно, я использую код, стартующий из реалмода с отключенными ядрами, кроме одного, - чтобы исключить влияние ОС и других ядер. В идеале, конечно, надо еще блочить SMI#, но учитывая, что на реальных системах оно никогда не блочится, на это можно и забить. |
Re: Удаление лишних пробелов | |
---|---|
spinz Сообщений: 5263 Дата регистрации: 21.01.2016 |
Не, ну проникновение в стек, конечно имеет место и при call, но другим способом, значит это уже нестандартные |
Re: Удаление лишних пробелов | |
---|---|
Igor Korolyov Сообщений: 34580 Дата регистрации: 28.05.2002 |
Нарисовал таки fll, и не смотря на более чем неоптимальный машинный код созданный для моего не менее неоптимального сишного кода древней VS, оно таки работает раза в 2 быстрее ASM вставки. Я думаю что всё дело в лишних копированиях. К сожалению, даже для fll фокс делает кучу "ненужных" копирований содержимого строки (в т.ч. и выделение памяти под все эти "копии", если строка массивная) - я ошибался полагая что FoxAPI даст "прямой" доступ к переменным. Он вообще через TLS работает, и саму fll нужно компилить как "многопоточную" - видимо сделали сразу с "защитой от дурака", т.к. кто то же может и под vfp*t.dll подключить такую библиотеку. Да и последствия от ошибки при работе с собственно фоксовой памятью, видимо, сказали разрабам что пусть лучше fll со своими отдельными "кучами" работают - там и exception можно иногда перехватить - т.е. хоть как-то снизить риск краха всего фокса при подключении "кривоватой" fll В общем от массивных memmove (как минимум две операции) мне избавиться не удалось - НО их число таки меньше чем для приведенного ASM варианта - там же ещё и LEFT "обязательный", который опять таки гоняет байтики туда-сюда. На той неделе выложу код и всё что надо для тестов. Хотелось бы чтобы "участники забега" подправили свои варианты - у варианта leonid-а печаль-беда с пустой строкой (таки крах фокса - "не туды" залазит код), и мой грубый фикс в виде
Плюс к тому тут ТЗ по ходу дела поменяли , и хотят уже и ALLTRIM() заодно делать, конечно же это будет совсем неэффективно делать фоксовой функцией - ещё одно ненужное копирование строк... Ну и да, использование конкатенации плюс REPLICATE() для подготовки данных тоже "не фонтан" - во-первых это опять тормоза, во-вторых не позволяют потестить эту функцию на мега-строках (у меня работает и с 400Мб-ной строкой взятой из файла). Если очень грубо подправить приведенный код (убрать + " " и сделать возврат данных в ту же самую переменную/строку, то этот код вполне справляется с 200Мб-ной строкой состоящей на 99.999% из пробелов. Но он, конечно же, будет падать из-за записи нескольких лишних байт куда не надо (для чего эти +4 символа и были введены) - т.е. приходится тупо отсекать обработку 4 последних символов в точке вызова. "Быстрый" вариант spinz-а имеет гораздо больше проблем, начав с того что он не возвращает размер готовой строки, некорректно обрабатывает строки не кратные 4-м символам, да и собственно саму строку без дублей пробелов не формирует и не возвращает из функции (конечно же это будет быстрее - если убрать необходимый LEFT, и не перекачивать данные лишний раз). ------------------ WBR, Igor |
Re: Удаление лишних пробелов | |
---|---|
spinz Сообщений: 5263 Дата регистрации: 21.01.2016 |
Размер не возвращается из-за необходимости вернуть TSC - для тестирования. Это был самый простой путь для возврата значения |
Re: Удаление лишних пробелов | |
---|---|
of63 Сообщений: 25254 Откуда: Н.Новгород Дата регистрации: 13.02.2008 |
(это уже не писатели ))) которые спорят о командах проца, разрабы микропрграммы это команды все заложили, только "вникнуть".. че они там вложили, обчные серийные операции, кроме копирований нет там ничего.)
|
Re: Удаление лишних пробелов | |
---|---|
Simple777 Сообщений: 33855 Дата регистрации: 05.11.2006 |
Народ полон чаяний и на предмет plb |
Re: Удаление лишних пробелов | |
---|---|
of63 Сообщений: 25254 Откуда: Н.Новгород Дата регистрации: 13.02.2008 |
plb... хз... ты написал хоть ОДНУ!? (я ни одной, если че, и не умею)
|
Re: Удаление лишних пробелов | |
---|---|
Simple777 Сообщений: 33855 Дата регистрации: 05.11.2006 |
"У меня тоже иномарка". |
Re: Удаление лишних пробелов | |
---|---|
of63 Сообщений: 25254 Откуда: Н.Новгород Дата регистрации: 13.02.2008 |
дочка сказала (они сменили дрендроид с советикус на несоветикус), она изменила степень бесовщинын. Я ведь тоже читал всю эту херню, "Бесы""...
|
© 2000-2024 Fox Club  |