Обновить
4

Пользователь

Отправить сообщение

Так там же нет отдельного кода без mbrtowc/is_basic? Т.е. такакя оптимизация в wc отсутствует.

А ByteString в хаскеле разве поддерживатет mbcs? Кажется это основное что тормозит в wc: https://github.com/coreutils/coreutils/blob/master/src/wc.c#L398 .

clang/gcc должно быть одинаково, он его должен понять. Вот msvc отличается, будет как-то так:


void __cdecl __inittime(void);

typedef void (__cdecl *_PVFV)(void);
#pragma section(".CRT$XIC_CLOCK", long, read)
#define _CRTALLOC(x) __declspec(allocate(x))
_CRTALLOC(".CRT$XIC_CLOCK") static _PVFV p_init_time = __inittime;

static unsigned __int64 start_tics;

void __cdecl __inittime()
{
#ifdef NO_HRES_CLOCK
  GetSystemTimeAsFileTime((FILETIME *)&start_tics);
#else
  start_tics = __g_rdtsc_timer.GetCounter();
#endif
}

".CRT$XIC_CLOCK" — .CRT это чтобы он разместил этот указатель там где надо, рантайм до main() будет всю эту область проходить как массив указателей на конструкторы. Строка после $ нужна только для сортировки, если какой-то конструктор надо исполнить до другого.
Детектить достаточно саму студию по _MSC_VER, так что clang/gcc/msvc поддержать не сложно. Этот механизм наиболее правильный, т.к. он для их рантаймов стандартный для глобальных конструкторов, но на си выглядит, конечно, не красиво (для c++ тоже ровно он и используется).

Вроде только с расширениями, например вот https://gcc.godbolt.org/z/8_907h, для msvc будет по-другому.
Кстати, в случае с++ тоже есть нюанс, который иногда стоит иметь ввиду. Обычный static const int foo = 1 — попадет в .rdata секцию, и будет реально защищена на запись, а динамическия = foo() — работает через тот же механизм, что и си с расширением, и попадет в .data без защиты.

Кстати far2l --tty теперь тоже работает в консоли.

Собственно DWS это тоже делает, но список надо обновлять (утечке достаточно произойти 1 раз) + это ломает почти все MS сервисы.

Это про вот это https://www.bleepingcomputer.com/news/linux/ubuntu-reveals-desktop-telemetry-for-the-first-time/


Только при установке и весь скандал в том, что галочка выставлена по умолчанию, тоесть можно отослать случайно. Сама репортилка открытая https://github.com/ubuntu/ubuntu-report и генерит json на килобайт. Так что пока с виндой это никак не сравнить, где только адресов отсылки сотни.

Ну appimage версия 150мб весит, это не так много по сравнению с тем же фотошопом. А в количестве пакетов какой-нибудь libboost тоже штук 50 пакаджей.

Есть еще Krita, она как аналог нравится куда большему количеству людей насколько я знаю.

Есть еще простая утилита-обертка wondershaper для ограничения полосы.

Возможно, но задание в шедулере тоже есть, и он проходится по всем файлам судя по procmon/filemon Марка Руссиновича. Что на hdd может быть очень заметно и сильно влияет от кол-ва файлов и фрагментации.


При этом MFT встроенным дефрагментатором похоже что не дефрагментируется. Надо или создать новый раздел и на него все скопировать, или другие тулзы использовать https://superuser.com/questions/316003/how-do-you-defragment-the-mft-on-an-ntfs-disk .


При этом многие процесса реально не замечают, к дисковой активности они привыкли, а на hdd загрузка CPU может быть не заметна. Так же мне показалось, у него есть некая эвристика, когда скан приостанавливать, но работает она не всегда.

Ну одно из вероятного я предположил. Сейчас многие приложения используют либы удаленного управления, для раскатки части фич не на всех пользователей, тюна всяких параметров удаленно тип. Возможно тут что-то подобное. Может он он настраивается так что включается буквально на секунду, например. Но эта логика нам неизвестна.

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

Тем не менее многие видели и жалуются, и никакие галочки телеметрии на скан не влияют. МС отписывается пространными фразами:


The CompatTelRunner.exe file is a Microsoft Compatibility Telemetry file found in your C:\Windows\System32 folder. In order to keep Windows devices secure and improve the quality of its services, Microsoft uses Telemetry to collect system data and information. The CompatTelRunner.exe file is also used to upgrade your system to the latest OS version and install the latest updates.

About your query in getting rid of the system file completely, we'd like to inform you that this is enabled by default and considered as part of the required Windows services since it gets installed every time your system downloads a new update. This is also the main reason why you can only disable it in your Task Scheduler as it ensures compatibility if you want to update to the latest version of Windows.

А если надавливают — показывают как отключить в таск шедулере… до следующего апдейта. Потом все восстанавливается и это не баг.


На десктопе, где у меня несколько HDD обычных вместе с SSD, процесс и вовсе идет субъективно часы, но и CompatTelRunner ест при этом не так много CPU как на макбуке или Dell XPS. Так что в целом я понимаю обе стороны, и тех кто на буке с SSD его не замечал т.к. процесс идет интенсивно и быстро + может сливаться с загрузкой, и тех кто на это натыкается и вызывает острую реакцию.

Скорее всего человеку тормозило систему не только обновления. Но и всякие .net фоновые компиляции, которые запускаются не регулярно. Его затреггирить может не только обновления, но и например установка игрушки, и штатно отключить нельзя насколько я знаю.
Но на такие штуки надо еще попасть, а вот в топе проблемы имхо — CompatTelRunner.exe. Он периодически сканирует все файлы на всех винтах. Я пробовал отключать, менять права и удалять — но он восстанавливался при апдейтах. МС подтвердило что отключить его нельзя и он само-восстанавливается https://answers.microsoft.com/en-us/windows/forum/all/windows-compatability-telemetry-compattelrunnerexe/bfa4d769-c539-43dc-b816-53d6c5647bbd .


We appreciate your prompt response and feedback regarding this matter. Since Windows Compatability Telemetry (CompatTelRunner.exe) gets enabled during a new download of Windows update and removing it completely is currently not possible, we suggest that you consult this directly to our IT pros from TechNet for an in-depth troubleshooting.

И в интернете полно жалоб на него. А если сойдутся сразу несколько таких процессов — ситуация усугубится, что даже топовый макбук c SSD внезапно тупит пару минут. И чем больше файлов на компе — тем заметнее CompatTelRunner.

А почему AdoptOpenJDK тестировался только под Windows? Насколько я вижу его сборки есть под все платформы.

Там еще часть раст кода https://github.com/xiph/rav1e/tree/master/src/asm/x86 — unsafe функции из интринзиков.

Когда я фаззил кодеки, AFL быстрее находил баги (видимо более рандомно распределяет комбинации инпута), а libFuzzer как будто работает дольше (видимо больше комбинаций проверяет). Может это потому, что AFL смотрит что внутри экзешника что-то стриггерилось (у него там мапа специальная есть) и начинает эти места лучше проверять, делает ли так-же libFuzzer я не вкурсе.

Про бинарник, который попадет в репу и будет тащить все динамически из нее, в репах таких хватает. Просто вы в основном API проблемы описываете, а ABI проблема тут крайне редко возникает (хотя я сталкивался), обычно это бывает если в git выкладывают предкомпиленые либы, вручную собранные.

Все верно, я и сам пакую и тащу все статически, для универсальной сборки, которую можно скачать, и запускать неизвестно где. Для винды тоже так делаю, даже с redist не люблю связываться. Вот для flatpak/snap можно указать core вполне, с проблемами пока не сталкивался. А вот в репе — можно и собрать, тянув все динамически. Если говорить именно про ABI — оно просто не соберется иначе, проблему сразу будет видно. И в репах таких приложений тоже хватает.

Информация

В рейтинге
5 047-й
Откуда
Россия
Зарегистрирован
Активность