Pull to refresh

Comments 24

А какая разница, блокировка удерживается семью командами или двумя тысячами?

Почему упор именно на «семь»?

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

семью командами или двумя тысячами

Рефакторить какой код предпочтете? Видимо тут с намеком что в такой мелкой функции порядок не навели.
  1. В упомянутом цикле не ожидание блокировки, а сканирование битовой карты.
  2. Качество кода, с точки зрения оптимизации производительности, в Windows (aka mustdie) местами уже давно никакое, даже в некоторых критичных местах. Почему — отдельный разговор. Но в качестве "пруфа" просто посмотрите на эти несчастные семь инструкций: на 64-битой супер-скалярной платформе поиск ведется тупым циклом с 32-битным сравнением (надо примерно так).
  3. В описанной ситуации добавляется еще какой-то системный/алгоритмический просчет или ошибка, ибо достаточно глупо (даже для Windows) каждый раз сканировать всё карту блоков с самого начала (хотя такое уже видели). Т.е. видимо какая-то ошибка в поддержке индекса/кэша, либо в его постоянной инвалидации. Но вникать нет никакого желания (в том числе читать треды по ссылкам) — гораздо проще и эффективнее на больших серверах использовать подходящую ОС, а не садиться на desktop-кактус ;)
Да, код на редкость кривой.
Но если yleo намекает на использование AVX (AVX2), то оно не на всех новых процессорах есть (Celeron, Pentium).
Майкл Ларабел (Michael Larabel) с Phoronix писал, что на 64 ядрах винда работает плохо, Linux — хорошо, FreeBSD — ещё лучше.
Просто не используйте MS Windows на слишком многоядерных процессорах.

"Толсто намекаю" но не только на AVX/AVX2, а в том числе на SSE2 (пример), ибо доступно на всех 64-битных x86 и дает ~4-х кратное ускорение в сравнении с 7-ю инструкциями (насколько помню, код в примере быстрее "просто сканирования" в ~10 раз).

Насчет "FreeBSD лучше Linux на multicore" — это давно устаревшая информация, очень давно. Кто-то даже может резонно спорить что это "совсем не правда и быть не может", но я просто помню что когда-то это было именно так.


Но "эпоха" закончилось где-то перед Linux 2.6.32. Хотя еще можно найти бенчмарки, в которых какой-то софт быстрее работает во FreeBSD (как правило из-за того, что делает что-то не правильно в Linux и/или не использует splice/sendfile т.д.). Еще есть бенчмарки (сомнительные, если разобраться), в которых FreeBSD внезапно в 2 раза быстрее (а в Linux при этом забывают выключить THP, SELinux и т.п.).


FreeBSD — хорошая система, но в Linux огромный объем превосходного кода. Тот случай, когда лучшее не враг хорошего, а просто превзошло его.

Да, код на редкость кривой.

Я встречал «лыцалей», которые снисходительно говорили про «кривой код».

Только, это «лыцалство» быстро заканчивалось, как только дело доходило до практики и вскрывался контекст такого «кривого кода», который «лыцаль» не стразу понял/увидел.

Ой да ладно винду хаить, помнится как там нарицательное о вставании линуксового я дра колом при дисковых рперациях… и всем подряд. Не говоря о работе линукс в условиях ограниченной памяти ;)


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

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

Нет. Это про то, что если памяти начнёт не хватать, то Линукс начнёт дико виснуть и грузить ЖД на 100%. Из-за этого всякие андроиды много патчей специализированных тащят.

И даже если своп есть, он работает так, что все становится раком :)

Ну, винда она такая. Всегда виснет. А из за чего конкретно – это как звезды в небе сложились.

Я взял у себя файлы ntoskrnl.exe и ntkrnlmp.pdb (той же версии, что у друга) и запустил dumpbin /disasm для просмотра интересующей функции в ассемблере.

Кто-нибудь объясните, как это возможно при явном запрете на такие действия лиц.соглашением?
Может ли МС за подобный поиск багов отправить на известную скамью?
Для чего тогда существует отладочная версия Windows?
Правильный ответ — зависит от страны.
при явном запрете на такие действия лиц.соглашением
каждый раз когда читаю подобное так и подмывает спросить «в какой стране?». Законодательство то везде разное, например у себя в стране я могу дебажить, изучать и модифицировать ПО легально купленое сколько душе угодно, до тех пор пока не начну результаты работы распространять или продавать. Это закон страны который никакие лицензионные соглашения МС отменить не могут, как бы им этого не хотелось.
Подскадите, в какой стране вы живете?
Так, чисто из любопытства, для себя, вдруг поизучать что-нибудь захочу.
UFO just landed and posted this here
На секунду представлю себя прокурором, которому взяток не надо, только дай кого-нибудь посадить.
Я бы давил на то, что в законе перечислены пункты, когда лицу позволена процедура декомпиляции, но среди них нет пункта публикации на каких-либо ресурсах.
Режим прокурора выключил.
Для себя оставил мнение, что «да, возможно, но адвокат потребуется подкованный».
Еще бы кто рассказал почему WMI запросы выполняются так… вдумчиво.
Все проще — это AMD. Таких глюков на них миллион.
Sign up to leave a comment.

Articles