Anti Stuttering : Intelligent standby list cleaner (ISLC)

Poster ici les programmes utiles que vous avez découverts
Avatar de l’utilisateur
Parisien_entraide
Messages : 9082
Inscription : 02 juin 2012 20:48
Localisation : Je suis dans la matrice :-)

Anti Stuttering : Intelligent standby list cleaner (ISLC)

par Parisien_entraide »

PREAMBULE :

index.jpg


Sous Windows dont et surtout avec Windows 10 le stuttering dans les jeux (malgré le mode "jeux") peut avoir plusieurs causes

Néanmoins le principal est le fait de fuites mémoires, parfois allié à une quantité de RAM insuffisante

A cela on y ajoute une fonctionnalité qui a débarqué dans Win10

https://blogs.windows.com/windowsexperi ... ild-10525/

Dans Windows 10, nous avons ajouté un nouveau concept de gestion de la mémoire appelé un magasin de compression, qui est une collection de pages compressées en mémoire . Cela signifie que lorsque gestionnaire de mémoire ressent une pression de mémoire, il comprimera les pages inutilisées au lieu de les écrire sur le disque. Cela réduit la quantité de mémoire utilisée par processus, permettant à Windows 10 de maintenir plus d'applications dans la mémoire physique à la fois. Cela contribue également à une meilleure réactivité dans Windows 10. Le magasin de compression est dans le travail du processus du système. Étant donné que le processus système maintient le magasin en mémoire, son ensemble de travail augmente plus précisément lorsque la mémoire est disponible pour d'autres processus. Ceci est visible dans le Gestionnaire des tâches et la raison pour laquelle le processus système semble consommer plus de mémoire que les versions précédentes.

La forte utilisation mémoire par SYSTEM est du fait de la compression de mémoire non utilisée.
Elle doit baisser (se libérer) lorsque le système/processus requiert de la mémoire. Dans les faits ce n'est toujours pas le cas et cela peut être contraignant dans les applis lourdes et pour les joueurs

Cette fonctionnalité est désactivable via une clé de registre (pour info car je n'ai pas les effets secondaires de la manipulation)

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Ndu clé à laquelle on attribue la valeur "4" pour désactiver la fonction

Détails et autres ici : viewtopic.php?t=53292&start=

Bref cela se complexifie
Pour en savoir plus sur la mémoire Mesurer l’utilisation mémoire sur Windows.



BUT DE L'APPLICATION :



L’application surveillera et effacera de la liste, ce qui traine en mémoire dans la "mémoire en cache dite de veille" (liste d'attente, pages modifiées, processus inutiles pour les jeux, ...) si celle-ci est > 1000 Mo (1 Go) ET si la quantité de mémoire est < à 1000 Mo (1Go)

Les paramètres indiquent que les deux conditions doivent être remplies en même temps

Ce n'est pas une programme miracle pour une situation donnée, mais cela a dépanné par mal de personnes confrontées au problème sous divers jeux, même avec 16 Go de RAM

Un visu avec RamMap
2020-01-10_194413.png

Concernant la mémoire de veille :

Quand une application charge un fichier en mémoire celui-ci n'est pas effacé quand elle le ferme, il reste disponible avec une entrée correspondant à "son age" dans une table.

Cette mémoire est disponible, c'est juste qu'elle ne sera donnée qu'en seconde priorité si la mémoire dite "libre" n'est pas suffisante.
Les programmes qui y étaient devront donc être rechargés la prochaine fois,

Elle est seulement utilisée en second lorsque la mémoire libre n'est plus disponible

Dans le cas des joueurs, nombre de programmes stockés qui ne sont pas en relation avec les jeux, ou de de données de jeux obsolètes restent dans le cache qui ne se vide pas
(Vu sous BF1 et BF V suivant les configs)


INSTALLATION


Il suffit de télécharger la dernière version de l'application sur le site Web du développeur (qui est celui de DDU)

https://www.wagnardsoft.com/ISLC/ISLC%20v1.0.2.4.exe

la version antérieure pouvait poser problème sous certaines configurations de Windows 10
L'auteur suggère une solution https://www.wagnardsoft.com/forums/view ... f=5&t=1256

L'ancienne version fonctionne bien cependant (et surtout n'utilise pas les compteurs de performance)
https://www.wagnardsoft.com/ISLC/ISLC%20v1.0.1.0.exe

puis de l' exécuter afin d' extraire l'archive dans un dossier que l'on peut choisir

Le programme lui-même est portable et peut être exécuté à partir de n'importe quel endroit sans installation.

Cependant l'auteur précise qu'il faut lui donner des droits administrateur avant lancement (clic droit sur le programme ---> Propriétés) ou
2019-02-24_133451.png
On peut suivre l'évolution des divers outils de l'auteur sur

https://forums.geforce.com/default/topi ... 4-2019-/1/



USAGE :

Dans l'absolu il n'y a pas grand chose à faire hormis de cliquer sur "START"

2019-02-24_122253.png

Certaines parties sont modifiables, comme la mémoire à gérer pour que les 2 conditions soient réunies
Idem pour le timer Resolution (dans ce contexte l'auteur ne dit quelle est la relation avec son programme)

On peut forcer la purge (Purge StandByList)


Points négatifs :

Cela fait une tâche de plus en arrière plan
On ne voit pas le détail de ce qui est effacé
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Only Amiga... was possible !
Un problème sans solution est un problème mal posé. » (Albert Einstein)
"Tous les patients mentent" Docteur House
Malekal_morte
Messages : 107808
Inscription : 10 sept. 2005 13:57

Re: Anti Stuttering : Intelligent standby list cleaner (ISLC)

par Malekal_morte »

Première règle élémentaire de sécurité : on réfléchit puis on clic et pas l'inverse - Les fichiers/programmes c'est comme les bonbons, quand ça vient d'un inconnu, on n'accepte pas !
Comment protéger son PC des virus
Windows 11 : Compatibilité, Configuration minimale requise, télécharger ISO et installer Windows 11

Comment demander de l'aide sur le forum
Partagez malekal.com : n'hésitez pas à partager les articles qui vous plaisent sur la page Facebook du site.
Avatar de l’utilisateur
Parisien_entraide
Messages : 9082
Inscription : 02 juin 2012 20:48
Localisation : Je suis dans la matrice :-)

Re: Anti Stuttering : Intelligent standby list cleaner (ISLC)

par Parisien_entraide »

On peut également avec https://wj32.org/wp/software/empty-standby-list/ se créer une tâche via le gestionnaire de tâches mais cela fait apparaitre pendant une seconde une petite fenêtre cmd qui peut perturber

Avec l'outil ISLC, l'avantage c'est que l'on peut lancer et stopper le processus lorsqu'on le souhaite, et surtout définir une plage mémoire d'usage qui ne s'activera pour le nettoyage que si besoin est
Only Amiga... was possible !
Un problème sans solution est un problème mal posé. » (Albert Einstein)
"Tous les patients mentent" Docteur House
Malekal_morte
Messages : 107808
Inscription : 10 sept. 2005 13:57

Re: Anti Stuttering : Intelligent standby list cleaner (ISLC)

par Malekal_morte »

Merci.
Je ferai un article dans le système sur les outils pour gérer la mémoire de Windows =)
Première règle élémentaire de sécurité : on réfléchit puis on clic et pas l'inverse - Les fichiers/programmes c'est comme les bonbons, quand ça vient d'un inconnu, on n'accepte pas !
Comment protéger son PC des virus
Windows 11 : Compatibilité, Configuration minimale requise, télécharger ISO et installer Windows 11

Comment demander de l'aide sur le forum
Partagez malekal.com : n'hésitez pas à partager les articles qui vous plaisent sur la page Facebook du site.
Malekal_morte
Messages : 107808
Inscription : 10 sept. 2005 13:57

Re: Anti Stuttering : Intelligent standby list cleaner (ISLC)

par Malekal_morte »

Première règle élémentaire de sécurité : on réfléchit puis on clic et pas l'inverse - Les fichiers/programmes c'est comme les bonbons, quand ça vient d'un inconnu, on n'accepte pas !
Comment protéger son PC des virus
Windows 11 : Compatibilité, Configuration minimale requise, télécharger ISO et installer Windows 11

Comment demander de l'aide sur le forum
Partagez malekal.com : n'hésitez pas à partager les articles qui vous plaisent sur la page Facebook du site.
Avatar de l’utilisateur
Parisien_entraide
Messages : 9082
Inscription : 02 juin 2012 20:48
Localisation : Je suis dans la matrice :-)

Re: Anti Stuttering : Intelligent standby list cleaner (ISLC)

par Parisien_entraide »

Mis à jour du lien de téléchargement avec la version V.1.0.2.5 dans le premier message de ce sujet

FAQ tirée des discussions sur le forum de Wagnard
https://www.wagnardsoft.com/forums/view ... =18&t=1256

______________

Mon PC se fige (plutôt un, microfreeze) lorsqu'ISLC purge la mémoire automatiquement
Ceci est normal sur les petites configurations avec disque dur, surtout si ISLC est installé ailleurs que sur le disque C et c'est lié à Windows
Sinon essayer des valeurs de 510 Mo pour commencer, et doubler cette valeur jusqu'à l'arrivée du micro freeze
Idem pour le polling rate. il vaut mieux laisser le paramètre par défaut (1000ms)



Qu'est ce que je dois modifier dans les paramètres avec 16 Gb de mémoire
Rien
Les valeurs "1024" pour les configuration avec 16 et 32 Gb de mémoire sont optimales
Avec 8 Gb on peut définir une valeur de 512
Mais chacun peut ajuster en fonction des besoins



ISLC ne fonctionne pas
Outre le .net installé et à jour, ISLC ne peut bien fonctionner que Si les valeurs des compteurs de performances existent ou ne sont pas corrompues

Exemple de message d'erreur :

2021-08-27_110608.png

Pour reconstruire manuellement les valeurs de bibliothèque de compteurs de performance

Ouvrir une fenêter CMD en mode administrateur et taper la commande 2 fois (une après chaque reboot) surtout si vous avez le message d'erreur
"ERROR: UNABLE TO REBUILD PERFORMANCE COUNTER SETTING FROM SYSTEM BACKUP STORE. ERROR CODE IS 2"

LODCTR /R et relancer l'ordinateur (sans démarrage rapide)

Pour rappel, la commande globale est (pas nécessaire pour ISLC) :

Reconstitution des compteurs :
cd c:\windows\system32
lodctr /R
cd c:\windows\sysWOW64
lodctr /R


La commande suivante est plus liée à la reconstruction et le bon fonctionnement général, et n'est pas nécessaire pour ISLC

Resynchronisation des compteurs avec Windows Management Instrumentation (WMI) :
WINMGMT.EXE /RESYNCPERF


Si cela ne fonctionne pas, ou que vous avez désactivé les compteurs de performances :

Toujours dans une fenêtre CMD en mode administrateur, vérifier que le compteur a correctement été ajouté au registre.

lodctr /Q et vérifier si la valeur est sur Enabled"

Exemple.png

En plus précis : lodctr /q | find "Disabled" (ce qui n'affichera que les valeurs désactivées)

Par ex si la commande lodctr /q | find "Disabled" retoune

[ PerfDisk ] Compteurs de performances (désactivés)
[ PerfOS ] Compteurs de performances (désactivés)


Il suffit pour chaque compteur désactivé de taper la commande

lodctr /e:PerfDisk
lodctr /e:PerfOS

et de faire la même chose pour ceux qui vous intéressent



Les 4 valeurs « First Counter », « Last Counter », « First Help », « Last Help » listées par la commande doivent correspondre à celles présentes dans le registre.

On peut trouver ces valeurs ici :

Code : Tout sélectionner

HKLM\System\CurrentControlSet\Services\%servicename%\Performance
%servicename% représente tout service avec un compteur de performances. Par exemple : PerfDisk, PerfOS, etc.

Il peut y avoir des clés de registre pour "DisablePerformanceCounters" dans l'un de ces emplacements.
Conformément à l'article TechNet (voir lien plus bas) cette valeur doit être définie sur 0. Si la valeur est autre que 0, le compteur peut être désactivé.

Pour ISLC si le compteur de performances est désactivé, exécutez la commande lodctr /e:PerfOS pour l'activer.

lodctr /e:PerfOS

Relancer l'ordinateur

Pour les autres problèmes liés aux compteurs de performances et non à ISLC
https://docs.microsoft.com/en-US/troubl ... e-counters


Si il est impossible de réparer les compteurs, c'est que Windows est endommagé ou que vous avez trop "bidouillé" celui ci
Donc soit il faudra passer par une réparation https://www.malekal.com/reparer-windows ... e-donnees/
soit désactiver les compteurs via une clé de registre

Code : Tout sélectionner

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib
et de mettre "Disable performance counters" à "0"



Il est impossible de faire démarrer automatiquement ISLC avec Windows via le planificateur de tâches

Il faut exécuter le programme en tant qu'administrateur (clic droit sur le programme) et ajouter un délai au chargement (5 à 10 secondes par exemple), pour qu'ISLC se charge APRES Exlorer

Manipulation

Ouvrir le planificateur de tâches
---> Action > Créer une tâche
---> Donnez-lui un nom sous Général et cochez "Exécuter avec les privilèges les plus élevés" en bas
---> Onglet Déclencheurs> Nouveau > Au démarrage
---> Onglet Actions > Nouveau > Démarrer un programme - choisissez ISLC

Ne pas oublier de cocher la case "démarrer minimisé"
Ne pas oublier de cocher également la case pour autoriser l'exécution avec des privilèges plus élevés



Est ce qu 'ISLC génère des écritures inutiles sur le SSD ?
Non, cela ne touche aucune donnée sur aucun lecteur


Est ce que le polling rate est pour la souris ?
Non, il s'agit de la fréquence à laquelle le programme va vérifier l'état de la mémoire


Le programme fonctionne en mode manuel, mais mais ne veut pas nettoyer automatiquement
C'est normal.
Si on prend l'exemple de la configuration par défaut, rie n'est nettoyé si on dispose de plus de 1024 Mo de mémoire libre
Il faut les 2 conditions pour que cela fonctionne


Est-ce que je peux me faire bannir par un programme anti triche dans mes jeux ?
Pour faire simple : NON
Par contre certains programmes comme GameGuard n'aiment pas qu'ISLC soient lancés avant eux
Solution : Mettre ces programmes dans les exceptions d'ISLC

Exclusions.png


Peut il y avoir un conflit avec SuperFetch ?
Non les deux programmes n'ont pas les mêmes finalités (sur un SSD superfetch n'est pas utile, même si les techs de Microsoft ne sont pas tous d'accord sur ce point)


La mémoire libérée indique "0" (zéro) et semble bloquée
C'est normal
Le processus suivant les configurations peut prendre jusqu'à une minute



la liste d'exclusion empêche ISLC de se purger lorsqu'un processus de cette liste est en cours d'exécution.
Quand est-ce utile? Pour quel scénario est-il censé être utilisé, par exemple ?

Certaines applications ou certains jeux peuvent s'exécuter ou se charger davantage à partir du disque dur lorsque le cache est vidé, car ils sont programmés pour l'utiliser.
Il v suffit de mettre une application à l'exclusion lorsque l'on pense qu' ISLC fait plus de mal que de bien pour cette application/jeu.



le Timer résolution indique une valeur autre que 0.5ms (par ex 0.4482ms) est ce normal ?
Ce timer est liés aux pilotes etc, et ceux ci peuvent influer, idem pour ceux qui activent le HPET ou le forcent à travers Windows (le HPET est activé par défaut dans le bios/uefi et il ne faut pas y toucher du moins sous Windows 10 et idem via BCDEDIT sauf pour certains cas ou utilisations en combinaison avec les autres timers, comme la MAO ou jeux)

https://www.malekal.com/optimiser-boost ... tiver_HPET


Existe il des alternatives ?
Oui avec certains programmes de Sysinternals (RamMap) https://www.malekal.com/mesurer-lutilis ... r-windows/
ou
https://www.mediafire.com/file/r5p3icyv ... e.zip/file


Pour tout configurer, exécutez 'setup.bat' dans une invite de commande en mode administrateur
Pour tout nettoyer, exécutez 'cleanup.bat' dans une invite de commande en mode administrateur

Pour ceux qui veulent voir ce qui se passe derrière :

Code : Tout sélectionner

/* 2 > nul  ||  titre FreeStandbyMemory.bat par AveYo v2019.06.01 
@ écho désactivé || extrait de compilation csc, planification avancée, add_remove intégré - MISE À JOUR : détection de mémoire libre fiable 
 
définir /a CLEAR_EVERY_MINUTES=1 
définir /a CLEAR_WHEN_UNDER_MB=512 
définir /a CLEAR_SYSTEMCACHEWS=0 
 
:: check_admin_rights 
requête reg "HKEY_USERS\S-1-5-20\Environment" /v TEMP > nul 2 > nul  ||  ( 
couleur 0e &  echo . &  echo PERMISSION REFUSÉE ! Cliquez avec le bouton droit sur % ~nx0  ^& Exécuter en tant qu'administrateur 
timeout /t -1 & couleur 0f &  titre  % COMSPEC %  &  exit /b 
) 
 
:: add_remove chaque fois que le script est exécuté à nouveau 
schtasks /query /tn FreeStandbyMemory > nul 2 > nul  &&  ( 
 écho . 
schtasks /Delete /TN "FreeStandbyMemory" /f 2 > nul 
 reg delete HKLM\Software\AveYo /v FreeStandbyMemory /f 2 > nul 
 del /f /q " % Windir % \FreeStandbyMemory.exe" 2 > nul 
couleur 0b & écho . & echo SUPPRIMÉ ! Exécutez à nouveau le script pour recompiler et ajouter une planification  ! 
timeout /t -1 & couleur 0f & titre  % COMSPEC %  & sortie /b 
) 
 
:: compiler l'extrait c# 
pushd  % ~dp0 
del  /f /q FreeStandbyMemory.exe  > nul  2 > nul 
for /f "tokens=* delims=" %% v  in  ( ' dir /b /s /a:-d /o:-n " % Windir % \Microsoft.NET\*csc.exe"' )  do  set " csc=" %% v "" 
% csc % /out:FreeStandbyMemory.exe /target:winexe /platform:anycpu /optimize /nologo " % ~f0 " 
si  pas  exister FreeStandbyMemory.exe de ERROR ! Échec de la compilation de l'extrait de code c# et du délai d'attente /t -1 et de la  sortie /b 
écho | set /p=FreeStandbyMemory.exe & copy /y FreeStandbyMemory.exe " % Windir % \FreeStandbyMemory.exe" & set "OUTDIR= % Windir % " 
s'il  pas  n'existe " % Windir % \FreeStandbyMemory.exe" echo ATTENTION ! Impossible de copier FreeStandbyMemory.exe dans % Windir % \ & définir "OUTDIR= % CD % " 
 
:: configurer un calendrier avancé - peut se permettre une priorité plus élevée après le passage de wmi à winapi 
définir "task_run= % OUTDIR % \FreeStandbyMemory.exe % CLEAR_WHEN_UNDER_MB %  % CLEAR_SYSTEMCACHEWS % " 
set "schedule=/Create /RU "System" /NP /RL HIGHEST /F /SD "01/01/2001" /ST "01:00:00" " 
schtasks % planning % /SC MINUTE /MO % CLEAR_EVERY_MINUTES % /TN "FreeStandbyMemory" /TR " % task_run % " 
set "sset=$s=New-ScheduledTaskSettingsSet -AllowStartIfOnBatteries -DontStopIfGoingOnBatteries -Priority 1 -StartWhenAvailable;" 
set "stopexisting=$s.CimInstanceProperties['MultipleInstances'].Value=3;" 
powershell -noprofile -c " % sset %  % stopexisting % $null=Set-ScheduledTask -TaskName FreeStandbyMemory -Settings $s" 
 
:: déclencher la tâche, forcer un effacement manuel et terminer la configuration 
schtasks /Run /TN "FreeStandbyMemory" 
écho . 
echo Effacement de StandbyMemory toutes les % CLEAR_EVERY_MINUTES % minutes UNIQUEMENT si la mémoire libre est inférieure à % CLEAR_WHEN_UNDER_MB % Mo 
echo Peut forcer un effacement manuellement à partir de l'invite de commande ( Admin ) en entrant : freestandbymemory 
écho . 
echo AJOUTÉ ! Exécutez à nouveau "% ~nx0 " pour supprimer l'extrait compilé et le calendrier  ! 
délai d'attente /t -1 
sortie /b 
 
:: Basé sur l'idée de "Script wrapper PowerShell pour effacer la mémoire StandBy sans RAMMap" par Alexander Korotkov 
:: Implémentation des suggestions SetSystemFileCacheSize et NtSetSystemInformation par Maks.K 
:: Utilisation de RtlAdjustPrivilege, GetPerformanceInfo, forcer l'effacement si aucun argument, sortie supprimée, aseptisé par AveYo 
*/ 
en utilisant le système ; 
en utilisant System.Diagnostics ; 
en utilisant System.Runtime.InteropServices ; 
en utilisant System.Reflection ; 
 
[assembly:AssemblyTitle ( "FreeStandbyMemory" ) ] 
[assembly:AssemblyCopyrightAttribute ( "AveYo" ) ] 
[assembly:AssemblyVersionAttribute ( "2019.06.01" ) ] 
 
espace de noms FreeStandbyMemory 
{ 
programme de classe 
  { 
static bool retv = false; 
static int MemoryPurgeStandbyList = 0x0004; 
    const int SystemFileCacheInformation = 0x0015; 
const int SystemMemoryListInformation = 0x0050; 
const entier SE_INCREASE_QUOTA_PRIVILEGE = 0x00000005; 
    const int SE_PROF_SINGLE_PROCESS_PRIVILEGE = 0x0000000d; 
[StructLayout ( LayoutKind.Sequential ) ] 
cours privé PERFINFO 
    { 
      public int cb; 
public IntPtr CommitTotal; 
public IntPtr CommitLimit; 
public IntPtr CommitPeak; 
public IntPtr PhysiqueTotal; 
public IntPtr PhysicalAvailable; 
public IntPtr SystemCache; 
public IntPtr KernelTotal; 
public IntPtr KernelPaged; 
public IntPtr KernelNonpaged; 
public IntPtr PageSize; 
public int HandleCount; 
public int ProcessCount; 
public int ThreadCount; 
      public PERFINFO () 
      { 
this.cb = ( int ) Marshal.SizeOf ( typeof ( PERFINFO )) ; 
      }         
    } 
[retour : MarshalAs ( UnmanagedType.Bool ) ] 
[DllImport ( "psapi.dll", CharSet = CharSet.Auto, SetLastError = true ) ) 
static extern bool GetPerformanceInfo ( [ In , Out ] PERFINFO pi ) ; 
[DllImport ( "psapi.dll" ) ] 
static extern bool EmptyWorkingSet ( IntPtr hwProc ) ; 
[DllImport ( "kernel32.dll" ) ] 
static extern bool SetSystemFileCacheSize ( IntPtr MinimumFileCacheSize, IntPtr MaximumFileCacheSize, int Flags ) ; 
[DllImport ( "ntdll.dll" ) ] 
static extern IntPtr RtlAdjustPrivilege ( int Privilege, bool Enable, bool CurrentThread, out bool RetValue ) ; 
[DllImport ( "ntdll.dll" ) ] 
static extern IntPtr NtSetSystemInformation ( int InfoClass, out int Info, int Length ) ; 
 
static void Main ( string[] args ) 
    { 
cible int = ( args.Length == 0 ) ? Int32.MaxValue : !!() 
bool systemcachews = ( args.Length == 0 || args.Length > = 2 && args[1] == "1" ) ; 
Int64 libre = 0 ; 
PERFINFO pi = nouveau PERFINFO () ; 
      if  ( GetPerformanceInfo ( pi )) 
      { 
Int64 disponible = pi.PhysicalAvailable.ToInt64 ()  ; 
        Int64 cache = pi.SystemCache.ToInt64 () ; 
Int64 page = pi.PageSize.ToInt64 () ; 
libre = (  ( succès > cache ) succès - cache: cache - succès ) * Page >> 20; 
/* Pour déboguer, remplacez csc /target:winexe par /target:exe et décommentez le */ de Console.WriteLine 
////Console.WriteLine ( "Total : {0,5}Mo", pi.PhysicalTotal.ToInt64 () * page >> 20 )  ; 
////Console.WriteLine Avail ( " : {0,5}Mo", pi.PhysicalAvailable.ToInt64 () * page >> 20 ) ; 
////Console.WriteLine ( "Cache: {0,5}Mo", pi.SystemCache.ToInt64 () * page >> 20 ) ; 
////Console.WriteLine ( "Gratuit : {0,5}Mo", gratuit ) ; 
      } 
      if  ( libre > cible ) return ; 
////Console.WriteLine ( "Cible :{0,5}Mo - EFFACEMENT  ! ", cible )  ; 
RtlAdjustPrivilege ( SE_INCREASE_QUOTA_PRIVILEGE, true, false, out retv ) ; 
RtlAdjustPrivilege ( SE_PROF_SINGLE_PROCESS_PRIVILEGE, true, false, out retv ) ; 
NtSetSystemInformation ( SystemMemoryListInformation, out MemoryPurgeStandbyList, Marshal.SizeOf ( MemoryPurgeStandbyList )) ; 
      if  ( cache système ) { 
SetSystemFileCacheSize ( nouveau IntPtr ( -1 ) , nouveau IntPtr ( -1 ) , 0 ) ; 
Process[] processlist = Process.GetProcesses () ; // Le système libre traite également les ensembles de travail : 
foreach ( Process p dans processlist )  if  ( p.SessionId == 0 ) try { EmptyWorkingSet ( p.Handle ) ; } catch ( Exception ) {} 
      } 
    } 
  } 
} 
/*_*/ 
L'auteur, AVEYO, est bien connu pour ses nombreux scripts de qualités
https://pastebin.com/u/aveyo


Quelle est la différence avec l'outil ISLC ?
Pour les aspects techniques et discussions
https://forums.guru3d.com/threads/fix-g ... st-5590668



Est ce que ISLC fonctionne sous Windows 11 ?
Windows 11 ne gère pas mieux la méoire donc ISLC est toujours préconisée
Une version en beta est dispo ici https://www.wagnardsoft.com/ISLC/ISLC%20v1.0.2.6.exe
La fonction "enable customer timer resolution doit être désactivée au lancement (donc si activée, la désactiver et relancer)

A noter que cette beta a été testé sous Win7 pro, Win8 et Win10/ Tout fonctionne (tests persos)
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Only Amiga... was possible !
Un problème sans solution est un problème mal posé. » (Albert Einstein)
"Tous les patients mentent" Docteur House
  • Sujets similaires
    Réponses
    Vues
    Dernier message

Revenir à « Programmes utiles »