FlylinkDC++ при закачке файла с большого кол-ва источников (10-50 ) начинает активно пожирать CPU на ожиданиях в критической секции объекта SharedFileHandle. Это происходит т.к. несколько ниток пытаются писать на диск (файл .dctmp) полученные из сети блоки а т.к. запись синхронная, то пока пишет один поток - другие крутятся в ожидании.
Попробовал перевести эту часть на Memory-Mapped Files - блоки асинхронно сбрасывается на диск не вешая в ожидания соседние потоки.
Просьба активных пользователей протестировать новую бетку (build-19853 или выше ) и отписать о результатах.
Пока эта функция включается автоматически, при условии что размер файла не выше 2 гиг полезный.
График загрузки CPU и ожиданий при закачке тествого файла размером 1.5 гиг
1. До изменений:
2. После включения Memory-Mapped Files:
среда, 27 июля 2016 г.
понедельник, 11 июля 2016 г.
FlylinkDC++ и 360 Total Security
Вчера починил ошибку при которой флайлинк всегда при старте писал себя в ветку реестра для перехвата magnet-сылок
HKEY_CURRENT_USER, _T("SOFTWARE\\Classes\\magnet\\shell\\open\\command")
подобная активность не нравилась некоторым антивирусам:
HKEY_CURRENT_USER, _T("SOFTWARE\\Classes\\magnet\\shell\\open\\command")
подобная активность не нравилась некоторым антивирусам:
Подписаться на:
Сообщения (Atom)