Используйте FlashWindowEx
, чтобы специально мигать только значок на панели задач. Для обычного консольного окна получите дескриптор окна через GetConsoleWindow
. Это может не работать для альтернативных консолей, таких как ConEmu, если только это не одна из функций API, которую они взламывают.
Например:
import ctypes
from ctypes import wintypes
kernel32 = ctypes.WinDLL('kernel32', use_last_error=True)
user32 = ctypes.WinDLL('user32', use_last_error=True)
FLASHW_STOP = 0
FLASHW_CAPTION = 0x00000001
FLASHW_TRAY = 0x00000002
FLASHW_ALL = 0x00000003
FLASHW_TIMER = 0x00000004
FLASHW_TIMERNOFG = 0x0000000C
class FLASHWINFO(ctypes.Structure):
_fields_ = (('cbSize', wintypes.UINT),
('hwnd', wintypes.HWND),
('dwFlags', wintypes.DWORD),
('uCount', wintypes.UINT),
('dwTimeout', wintypes.DWORD))
def __init__(self, hwnd, flags=FLASHW_TRAY, count=5, timeout_ms=0):
self.cbSize = ctypes.sizeof(self)
self.hwnd = hwnd
self.dwFlags = flags
self.uCount = count
self.dwTimeout = timeout_ms
kernel32.GetConsoleWindow.restype = wintypes.HWND
user32.FlashWindowEx.argtypes = (ctypes.POINTER(FLASHWINFO),)
def flash_console_icon(count=5):
hwnd = kernel32.GetConsoleWindow()
if not hwnd:
raise ctypes.WinError(ctypes.get_last_error())
winfo = FLASHWINFO(hwnd, count=count)
previous_state = user32.FlashWindowEx(ctypes.byref(winfo))
return previous_state
Можно хотеть увеличиться vfs_cache_pressure
а также набор swappiness
кому: 0
.
Выполнение, которое заставит ядро исправить кэш быстрее при предоставлении равных процессов или больше пользы при решении того, что разбито на страницы.
Можно только хотеть сделать это, если процессы, о которых Вы заботитесь, делают очень мало диска ввод-вывод.
Если бы сеть I/O связала процесс, то должен загрузить для обслуживания запросов, это - проблема, и действительное решение состоит в том, чтобы поместить его на менее конкурентоспособный сервер.
Со значением по умолчанию swappiness
при установке ядро почти всегда собирается способствовать остающемуся связанному с FS кэшу в реальной памяти.
По сути, если Вы увеличиваете давление кэша, убедиться одинаково корректироваться swappiness
.
Содержание /proc/meminfo говорит Вам, для чего ядро использует RAM.
можно использовать /proc/sys/vm/vfs_cache_pressure, чтобы вынудить ядро исправить память, которая используется для связанных с файловой системой кэшей более лениво или нетерпеливо.
Примечание, которому Ваше приложение может только извлечь выгоду из настройки этого параметра, если это делает минимальный дисковый ввод-вывод.
Вы могли бы найти ответ John Nilsson на мой Вопрос полезным для чистки кэша, чтобы протестировать, связано ли это с Вашей проблемой:
sync && echo 1 > /proc/sys/vm/drop_caches
Хотя я предполагаю, что единственная реальная разница 1 по сравнению с 3