Comment forcer les programmes sur le fichier d'échange quand un lot terminé ressources intensives?

StackOverflow https://stackoverflow.com/questions/2498483

Question

Nous utilisons les postes de travail des employés pour la simulation CPU-intensive au cours de la nuit. Ordinateurs de bureau exécuter Windows - généralement Windows XP. Les employés ne se déconnectent pas, ils bloquent tout simplement les ordinateurs de bureau, éteindre leurs moniteurs et aller.

Chaque employé a un fichier de configuration qu'il peut modifier pour indiquer quand il est très probablement hors du bureau. Lorsque ce moment arrive un grappins du programme de base de données pour la simulation à partir du serveur, fraye processus de travail, les montres, obtient des résultats et les envoie au serveur. Lorsque le délai fixé par l'employé de simulation afin que cesse soit écoulé utilisation normale de bureau ne gênent pas.

Le problème est que simuation consomme beaucoup de mémoire, de sorte que lorsque le processus de travail exécuté, ils forcer d'autres programmes dans le fichier d'échange. Ainsi, lorsque l'employé vient tous les programmes qu'il a quitté sont luggish et lent jusqu'à ce qu'il les ouvre un par un afin qu'ils soient unswapped.

Est-il possible que le programme peut forcer d'autres programmes sur le fichier d'échange quand il arrête la simulation afin qu'ils fonctionnent à nouveau en douceur?

Était-ce utile?

La solution

boucle à travers des processus système et utilisateur, en commençant par celui qui utilise le plus la mémoire (en dehors de l'application de fond) ou qui est utilisée le plus par l'employé, et envoyer le processus un message WM_ACTIVATEAPP. Cela devrait avoir le même effet que « en cliquant sur » une icône de la fenêtre d'application dudit processus dans la barre des tâches.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top