Util [DragonFly] Resident

April 27th, 2005 par ls

resident(8) est une petite fonctionnalité convi du BSD à la libellule. Il permet de rendre un programme, comme son nom l’indique si bien, résident en mémoire, ainsi que tous les mappings vers les bibliothèques partagées qu’il utilise.

L’intérêt est que l’application resident-isée au préalable se lance alors biiien plus vite au prix d’un peu de RAM utilisée.

Démonstration en images:

1) Rendre résidente une application
# resident /chemin/vers/programme

2) Constater avec plaisir qu’elle est bien résidente
# resident -l
Id Size Address Executable 1 4224472 0x2840c6c0 /chemin/vers/programme

3) Libérer l’espace occupé en mémoire
# resident -x 1

resident est disponible sur tout système DragonFly BSD à peu près à jour (à ma connaissance, il n’a pas été porté vers d’autres BSD).

Posté dans Util | 3 Comments »

3 Reponses pour “[DragonFly] Resident”

  1. Anonyme Says:

    Resident
    Ce principe avait déjà été exploité au début des années 90 sous IBM OS/2, et en particulier pour son compilateur C++. Celui-ci résidait en mémoire, et lorsqu’il n’était plus utilisé pendant un certain temps, la libérait. C’est étonnant que l’on aie pas repris ce principe plutôt, probablement que certains caches système remplissent déjà partiellement ou complètement cette tâche !

  2. Anonyme Says:

    OpenOffice
    C’est pas plus ou moins ce que fait openoffice avec son loader.

  3. ls Says:

    Amiga / Solution kernelspace
    En fait, d’après la liste des features:
    “An amiga-style ‘resident’ utility program + kernel support has been implemented, and prelinking support has been removed (because the resident utility is much better). You can make any dynamically loaded ELF binary resident with this utility. The system will load the program and do all shared library mappings and relocations, then will snapshot the vmspace. All future executions of the program simply make a copy of the saved vmspace and skip almost right to main(). Kernel overhead is fairly low, also. It still isn’t as fast as a static binary but it is considerably faster then non-resident dynamic binaries.”

    L’idée de resident provient donc de l’Amiga. Dillon codait sur cette plateforme, on lui doit le compilateur C DICE.

    Sinon, il me semble que c’est quelque chose d’un peu plus souple que le loader d’OpenOffice ou kdeinit de KDE, qui sont des solutions entièrement userspace… le kernel fait une part du travail, pour que n’importe quelle application puisse être resident-isée, et non uniquement celles qui ont été codées spécialement pour.

    (BTW, m’suis trompé, il s’agit plus d’un tip que d’une news…)

Répondre

Vous devez être identifié pour poster un commentaire.

Identification

Enregistrez-vous

SQUAD!

GCU live

-- [05:45:49] Nick change: semarie -> Guest14073
-- [05:45:50] Nick change: semarie_ -> semarie
<-- Guest14073 left irc: Ping timeout: 264 seconds
--> semarie_ joined #gcu.
-- [05:48:24] Nick change: semarie -> Guest73363
-- [05:48:24] Nick change: semarie_ -> semarie
[05:48:45] semarie ouais, c'est la fête avec l'orage
<-- Guest73363 left irc: Ping timeout: 264 seconds
<-- semarie left irc: Quit: WeeChat 0.4.2
<-- Ypnose left irc: Ping timeout: 246 seconds
--> Ypnose joined #gcu.

Miiissioudaaam'

Archives:

Meta:

Hosted by:

NBS-System