Lecteur RAM pour la compilation - est-il une telle chose?
Une réponse (voir ci-dessous) à l'une des questions ici sur Pile Overflow m'a donné une idée pour un super petit morceau de logiciel qui pourrait être précieux pour les codeurs de partout.
J'imagine RAM logiciel du lecteur, mais avec une différence cruciale serait - il un miroir d'une véritable dossier sur mon disque dur. Plus précisément, le dossier qui contient le projet sur lequel je travaille actuellement. De cette façon, tout s'appuie serait presque instantanée (ou au moins deux ordres de grandeur plus rapide). La RAM lecteur de synchroniser son contenu avec le lecteur de disque dur dans le fond à l'aide d'inactivité uniquement des ressources.
Une rapide recherche sur Google n'a rien révélé, mais peut-être que je ne sais pas comment faire pour Google. Peut-être quelqu'un sait d'un tel logiciel? De préférence gratuit, mais des frais raisonnables peuvent être OK aussi.
Ajouté: Certaines solutions ont été proposées qui j'ai jeté dans le début. Ils seraient (dans aucun ordre particulier):
- Acheter un disque dur plus rapide en voiture (SSD peut-être ou 10K RPM). je ne veux pas d'une solution matérielle. Non seulement le logiciel a le potentiel d'être moins cher (freeware, anyone?), mais il peut également être utilisé dans des environnements où les modifications du matériel serait une erreur si ce n'est impossible - dire, au bureau.
- Laissez-OS/HDD ne le cache il sait mieux comment utiliser votre mémoire RAM libre. L'OS/HDD ont générique cache algorithmes qui cache tout et d'essayer de prédire lesquels des données sera plus nécessaire à l'avenir. Ils n'ont aucune idée que pour moi, la priorité est de mon dossier de projet. Et comme nous le savons tous très bien qu'ils n'ont pas vraiment le cache beaucoup de toute façon. 😉
- Il ya beaucoup de disques RAM autour; utiliser l'un de ceux-ci. Désolé, ce serait irresponsable. J'ai besoin de mes données pour être synchronisé sur le disque dur à chaque fois qu'il y a un peu de temps libre. Dans le cas d'une panne de courant, je ne pouvais supporter de perdre les cinq dernières minutes de travail, mais pas tout depuis mon dernier enregistrement.
Ajout de 2: Une idée qui m'est venue à usage normal d'un lecteur RAM en plus d'un dossier de synchroniseur (mais je ne veux dire background). Est-il une telle chose?
Ajout de 3: Intéressant. J'ai juste essayé un simple lecteur RAM au travail. Le temps de reconstruction des gouttes de ~14 s de ~7 sec (pas mal), mais progressives construire est encore à ~5 secs - tout comme sur le disque dur. Des idées pourquoi? Il utilise aspnet_compiler
et aspnet_merge
. Peut-être qu'ils font quelque chose avec d'autres fichiers temporaires ailleurs?
4: Oh, nice, nouvelle série de réponses! 🙂 OK, j'ai un peu plus d'info pour tous les opposants. 🙂
L'une des principales raisons pour que cette idée n'est pas le logiciel mentionné ci-dessus (14 secondes de temps de compilation), mais une autre que je n'ai pas accès à l'époque. Cette autre application a 100 MO de base de code, et sa construction complète prend environ 5 minutes. Ah oui, c'est dans Delphi 5, de sorte que le compilateur n'est pas trop avancé. 🙂 De mettre les sources sur un disque RAM a abouti à une GRANDE différence. Je l'ai eu en dessous d'une minute, je pense. Je n'ai pas mesuré. Donc, pour tous ceux qui disent que l'OS peut mettre en cache des trucs mieux - je prie de différer.
Liés À La Question:
Note sur le premier lien:
La question à laquelle elle liens a été supprimé parce qu'il était un doublon. Elle a demandé:
Que faites-vous pendant que votre code a la compilation?
Et la réponse par Dmitri Nesteruk à qui je me suis lié a:
Je compile presque instantanément. En partie en raison de mes projets de petite taille, en partie en raison de l'utilisation de disques RAM.
- Pourquoi modification matérielle impossible dans le bureau? Nous avons toujours quelques ressources disponibles, si la valeur est là. Aussi, j'ai été appelé à acheter du matériel avec mon propre argent, juste pour faire mon expérience de travail plus agréable.
- Dans mon cas, les versions de prendre ~15s progressive et ~30s complet. Pas vraiment quelque chose à convice le patron avec. Mais ce serait bien si c'était 1s. 🙂 Et je ne veux pas investir mon propre argent dans cette. D'ailleurs - il y a beaucoup de gens là, et chacun a une histoire différente. Beaucoup pourraient avoir l'utilisation de ce trop.
- Si j'étais à votre patron, je serais intéressé par les moyens d'obtenir votre temps de construction vers le bas à partir de 15s/30s à 1 seconde. Tout retard perceptible est une opportunité d'amélioration. La productivité des développeurs est directement touché par aucun délai.
- Je souhaite que vous étiez mon patron. 😀
- malheureusement, dans beaucoup de sociétés d'ingénierie et de l'équipement du temps sont complètement différents coûts selon la comptabilité de la structure, et souvent, malheureusement, est logique financière pour aller à bas prix sur le matériel, même avec l'énorme dépense supplémentaire de l'ingénierie de temps. Patron peut ne pas avoir le contrôle sur elle.
- le lien vers la réponse dans le début ne fonctionne pas, pourriez-vous mettre à jour?
- Là vous allez! 🙂
- Il est assez incroyable de voir comment beaucoup de gens prennent une "le cache du système d'exploitation afin de ne pas déranger" ou "utiliser un SSD" position pour ce genre de chose, sans l'analyse comparative. Je viens de terminer la configuration d'un nouveau serveur de build pour moi, le serveur de build a déjà un SSD. J'ai ajouté un ramdisk pour le processus, ce qui réduit le temps de construction de 12 à 10 minutes pour une plate-forme, car le système a besoin de construire pour les 3 plateformes c'est un ~6 minutes de la réduction globale. Bien sûr, sur un serveur de build theres aucun besoin de s'inquiéter à propos de la synchronisation de quoi que ce soit, sauf les résultats, donc c'est un peu plus facile à configurer.
Vous devez vous connecter pour publier un commentaire.
Dans Linux (vous n'avez jamais dit, OS que vous êtes, donc, ce pourrait être pertinent) vous pouvez créer des périphériques de bloc de mémoire RAM et les installer comme n'importe quel autre périphérique de bloc (qui est, d'un disque dur).
Vous pouvez ensuite créer des scripts qui copier vers et à partir de ce lecteur sur le démarrage et l'arrêt, ainsi que périodiquement.
Par exemple, vous pouvez le configurer de sorte que vous avait
~/code
et~/code-real
. Votre RAM bloc est monté à~/code
au démarrage, et puis tout d'~/code-real
(qui est sur votre disque dur standard) est copié sur. Lors de l'arrêt, tout devrait être copiés (rsync'd serait plus rapide) de retour de~/code
à~/code-real
. Vous aussi, vous avez probablement envie que le script à exécuter périodiquement, de sorte que vous ne perdez pas beaucoup de travail en cas de panne de courant, etc.Je ne fais pas ça (je l'ai utilisé pour Opéra lorsque l'9.5 beta est lent, pas besoin de plus).
Voici comment créer un disque RAM sous Linux.
Je suis surpris de voir comment beaucoup de gens suggèrent que le système d'exploitation peut faire un meilleur travail à déterminer vos besoins de mise en cache que vous pouvez dans ce cas spécial. Alors que je n'ai pas fait cela pour la compilation, j'ai fait faire par des procédés similaires et j'ai fini par utiliser un disque virtuel à l'aide de scripts automatisés la synchronisation.
Dans ce cas, je pense que j'irais avec un moderne système de contrôle de source. À chaque compilation, il serait de vérifier dans le code source (le long d'une branche expérimentale si nécessaire) automatiquement, de sorte que chaque compiler aurait pour résultat les données enregistrées off.
À lancer le développement, démarrez le disque RAM et tirez le courant de ligne de base. Faire de l'édition, de compiler, d'éditer, compiler, etc. - tout de même, les modifications sont enregistrées pour vous.
Faire la vérification finale dans lorsque heureux, et vous n'avez même pas à impliquer votre disque dur.
Mais il y a des antécédents synchroniseurs qui permettra d'automatiser les choses - le problème est qu'ils ne seront pas optimisés pour la programmation et peuvent avoir besoin de faire le plein de répertoire et de fichier analyses parfois à attraper des changements. Un système de contrôle de code source est conçu exactement pour ce but, alors il serait probablement plus faible surcharge, même si elle existe dans votre construction de l'installation.
Garder à l'esprit qu'une tâche de synchronisation, dans le cas d'une panne de courant, n'est pas défini. Vous allez finir par avoir à comprendre ce qui a été sauvé et ce qui n'était pas enregistré si les choses tournaient mal. Avec la définition d'un point de sauvegarde (à chaque compilation, ou forcé par la main) vous auriez une assez bonne idée de qui il était, au moins dans un état où vous avez pensé que vous pourriez compiler. Utiliser un VCS et vous pouvez facilement comparer au précédent code et voir ce que les modifications que vous avez déjà appliquée.
Voir Accélérer émerger avec tmpfs (Gentoo Linux wiki).
Accélérer compile à l'aide de disques RAM sous Gentoo a fait l'objet d'un écrit de nombreux il y a des éons. Il fournit un exemple concret de ce qui a été fait. L'essentiel est que toutes les sources et construire l'intermédiaire de fichiers sont redirigés vers un disque RAM pour compiler, tandis que la finale binaires sont dirigés vers le disque dur pour l'installation.
Aussi, je recommande d'explorer le maintien de votre source sur le disque dur, mais
git push
votre dernière modification de la source à un clone respository qui réside sur le disque RAM. Compiler le clone. Utilisez votre favori script pour copier les fichiers binaires créés.J'espère que ça aide.
Utilisation https://wiki.archlinux.org/index.php/Ramdisk pour faire le disque RAM.
Ensuite, j'ai écrit ces scripts pour déplacer les répertoires vers et depuis le disque RAM. La sauvegarde est effectuée dans une tar fichier avant de le déplacer dans le disque RAM. L'avantage de cette façon de faire est que le chemin reste le même, de sorte que tous vos fichiers de configuration n'avez pas besoin de changer. Lorsque vous avez terminé, utilisez
uramdir
de ramener sur le disque.Edit: Ajouté le code C qui va exécuter n'importe quelle commande il est donné sur un intervalle en arrière-plan. Je suis de l'envoyer
tar
avec--update
pour mettre à jour l'archive si toutes les modifications.Je crois que cette solution vaut une solution unique pour quelque chose de très simple. BAISER
Assurez-vous de changer de chemin pour rdbackupd
ramdir
uramdir
rdbackupd.cpp
while(true);
😉 de toute façon, il échoue sur un seul compte encore "utilise seulement ralenti ressources". Si elle coups de pied pendant que je suis à la compilation, ça va être perceptible. Mais encore, merci pour la réponse! 🙂Votre système d'exploitation va cache des choses dans la mémoire que l'on travaille. Un disque RAM peut sembler plus rapide, mais c'est parce que vous n'êtes pas tenir compte de la "copie de disque virtuel" et "copie à partir du disque virtuel" fois. Consacrant la RAM à une taille fixe ramdisk juste réduit la quantité de mémoire disponible pour la mise en cache. Le système d'exploitation sait le mieux ce qui doit être dans la RAM.
Nous avons utilisé pour ce faire il y a longtemps par un 4GL macro-compilateur; si vous mettez la bibliothèque de macro et des bibliothèques de support et de votre code sur un disque RAM, la compilation d'une application (sur un 80286) passerait de 20 minutes à 30 secondes.
Je n'ai pas exactement ce que vous cherchez, mais je suis maintenant à l'aide d'une combinaison de Ramdisk et DRAM ramdisk. Puisque c'est Windows, j'ai du mal 3 GO limite de base de la mémoire, ce qui signifie que je ne peut pas utiliser trop de mémoire pour un disque RAM. 4 GO supplémentaire sur les 9010 vraiment rochers il. Je laisse mon IDE de stocker toutes ses temporaire de choses sur l'état solide disque RAM et aussi la Maven référentiel. La barrette de RAM disque dispose d'une batterie de sauvegarde de la carte flash. Cela sonne comme une publicité, mais c'est vraiment un excellent programme d'installation.
La DRAM disque a double SATA-300 ports et sort avec 0.0 ms moyen de recherche sur la plupart des tests 😉 quelque Chose pour le bas de Noël?
Profil. Assurez-vous de faire de bonnes mesures de chaque option. Vous pouvez même acheter des choses que vous avez déjà rejeté, de les mesurer et de les retourner, de sorte que vous savez que vous travaillez à partir des données de bonne qualité.
Obtenir beaucoup de RAM. 2 GO Dimm sont très bon marché; 4 GO Dimm sont un peu plus de US$100/ea, mais qui n'a pas encore beaucoup d'argent par rapport à ce que l'ordinateur de pièces de coût juste il y a quelques années. Si vous vous retrouvez avec un disque RAM ou simplement en laissant les OS faire sa chose, cela aidera. Si vous êtes en cours d'exécution 32 bits de Windows, vous aurez besoin pour passer en 64 bits pour utiliser rien de plus de 3 GO ou plus.
Live Mesh pouvez synchroniser à partir de votre lecteur RAM pour le cloud ou sur un autre ordinateur, vous donnant une date de sauvegarde.
Déplacer juste compilateur sorties. Garder votre code source dans le réel physique du disque, mais direct .obj, .dll, et .les fichiers exe être créé sur le disque RAM.
Envisager une DVCS. Clone du lecteur réel à un nouveau référentiel sur le disque RAM. "pousser" vos modifications à la maison mère souvent, disent à chaque fois toutes vos tests passent.
J'ai eu la même idée et fait quelques recherches. J'ai trouvé les outils suivants qui ne de ce que vous recherchez:
Cependant, je ne parvenais pas à le faire fonctionner sur une version 64 bits de Windows 7 à tous, et il ne semble pas être maintenu pour le moment.
La VSuite RAM disque sur les autres mains fonctionne très bien. Malheureusement, je ne pouvais pas mesurer un gain de performances significatif par rapport à la SSD disque en place.
Yep, j'ai rencontré le même problème. Et après d'infructueuses recherches sur google je viens d'écrire un Service Windows paresseux pour sauvegarder le disque RAM (en fait - n'importe quel dossier, car la mémoire RAM disque peut être monté dans, par exemple, le bureau).
http://bitbucket.org/xkip/transparentbackup
Vous pouvez spécifier l'intervalle de balayage complet (par défaut: 5 minutes).
Et un intervalle pour la numérisation averti seulement les fichiers (par défaut: 30 secondes).
Scan détecte les fichiers modifiés à l'aide de "l'archive" attribut (l'OS réinitialise que l'un spécialement pour l'archivage de but). Seuls les fichiers modifiés sont sauvegardés.
Le service laisse un marqueur spécial du fichier à assurez-vous que la cible de sauvegarde est exactement une copie de sauvegarde de la source. Si la source est vide et ne contient pas un fichier de marqueurs, le service effectue la restauration de la sauvegarde. Donc, vous pouvez facilement détruire le RAM disque et de créer de nouveau avec automatique de la restauration des données. Il est préférable d'utiliser un lecteur RAM qui est capable de créer une partition sur le démarrage du système pour le faire fonctionner de manière transparente.
Une autre solution que j'ai récemment détecté est SuperSpeed SuperCache.
Cette société dispose également d'un disque RAM, mais c'est un autre logiciel. SuperCache vous permet d'utiliser RAM supplémentaire pour bloquer au niveau de la mise en cache (c'est très différent à partir d'un fichier de cache), et une autre option - miroir, vous lecteur de RAM complètement. Quel que soit le scénario, vous pouvez spécifier la fréquence de drop sale blocs retour à l'unité de disque dur, rendant écrit comme sur le lecteur RAM, mais le miroir scénario rend également se lit comme de la RAM lecteur. Vous pouvez créer une petite partition, par exemple, de 2 GO (à l'aide de Windows) et le plan de l'ensemble de la partition de la mémoire vive.
Un intéressant et très utile chose à propos de cette solution - vous pouvez modifier la mise en cache et les options de mise en miroir tout moment instantanément en deux clics. Par exemple, si vous voulez que vos 2 GO pour gamimg ou de machine virtuelle vous pouvez juste arrêter la mise en miroir instantanément et de libérer de la mémoire en arrière. Même ouvert les descripteurs de fichiers à ne pas rompre la partition continue de travailler, mais comme un disque habituel.
EDIT: je recommande fortement de vous déplacer dans le dossier TEMP de te RAM disque, car les compilateurs habitude de faire beaucoup de travail avec le temp. Dans mon cas, il m'a donné un autre 30% de la vitesse de compilation.
Je me demande si vous pouvez construire quelque chose comme un logiciel RAID 1, si vous avez un physique de disque/partition en tant que membre, et une partie de la RAM en tant que membre.
J'ai parié avec un peu de peaufinage et certains vraiment étrange configuration, on pourrait avoir Linux pour ce faire. Je ne suis pas convaincu qu'il serait en vaut la peine si.
Seulement si vous de travailler entièrement dans la mémoire vive disque, ce qui est stupide..
Pseudo-ish script shell, ramMake:
Cela dit, le compilateur peut éventuellement le faire sans scripts supplémentaires.. il suffit de changer votre emplacement de la sortie d'un RAM disque, par exemple dans Xcode, c'est dans les Préférences, de Construction, "Lieu de Construire des Produits dans:" et de "Lieu Intermédiaire Construire des Fichiers:".
Ce qui peut être super avantageux, même sur un single-core, la machine est parallèle à faire. Disque I/O est un très grand facteur dans le processus de construction. La ponte de deux compilateur instances par cœur de PROCESSEUR peut augmenter les performances. Comme un compilateur exemple bloque sur les I/O de l'autre, on peut généralement de sauter dans la CPU intensive partie de la compilation.
Vous devez vous assurer que vous avez de la RAM à l'appui de cette (ne devrait pas être un problème sur un poste de travail moderne), sinon, vous finirez par l'échange et qui l'emporte sur l'objectif.
Sur GNU make vous pouvez simplement utiliser
-j[n]
où[n]
est le nombre de processus simultanés pour frayer. Assurez-vous d'avoir votre dépendance à l'arbre à droite avant de l'essayer ou si les résultats peuvent être imprévisibles.Un autre outil qui est vraiment utile (dans le parallèle que faire de la mode) est distcc. Il fonctionne un régal avec GCC (si vous pouvez utiliser GCC ou quelque chose de similaire interface de ligne de commande). distcc fait de ruptures de la compilation de la tâche en se faisant passer pour le compilateur et le frai des tâches sur des serveurs distants. Vous appelez ça de la même manière que vous souhaitez appeler GCC, et à vous de prendre avantage de rendre l'-j[n] pour appeler de nombreuses distcc processus.
À un de mes précédents travaux, nous avons eu une assez intensif Linux version du système d'exploitation qui a été réalisée presque tous les jours pendant un certain temps. L'ajout d'un couple de dédié construire des machines et la mise distcc sur quelques postes de travail à accepter des travaux de compilation, nous permettant d'apporter les temps de construire vers le bas à partir d'une demi-journée pour moins de 60 minutes pour une OS + espace utilisateur de construire.
Il y a beaucoup d'autres outils à vitesse compile existant. Vous pourriez vouloir étudier de plus que de créer des disques RAM; quelque chose qui ressemble, il y aura très peu de gain depuis l'OS est en train de faire la mise en cache disque RAM. OS les concepteurs passent beaucoup de temps à obtenir la mise en cache de droite pour la plupart des charges de travail; ils sont (collectivement) plus intelligente que toi, donc je ne voudrais pas essayer de le faire mieux qu'eux.
Si vous mâchez de la mémoire RAM pour disque RAM, l'OS a moins de RAM pour le cache de données et d'exécuter votre code -> vous vous retrouverez avec plus d'échange et de pire performance de disque que le contraire (remarque: vous devez le profil de cette option avant de complètement s'en défaire).
Cela sonne comme disque cache de votre système d'exploitation et /ou votre disque dur sera gérer pour vous automatiquement (à des degrés divers de performance, il est vrai).
Mon conseil, si vous n'aimez pas la vitesse de votre voiture, acheter un lecteur haute vitesse purement pour la compilation des fins. Moins de travail de votre part et vous pourriez avoir la solution à votre compilation de malheurs.
Depuis que cette question a été initialement demandé, tourner les disques durs sont devenus misérables tortues lorsque par rapport aux disques Ssd. Ils sont très proches de l'origine de la requête disque RAM dans un article que vous pouvez acheter à partir de Newegg ou Amazon.
Quelques idées sur le dessus de ma tête:
Utilisation de Sysinternals' Le Moniteur De Processus (pas Processus Explorer) pour vérifier ce qui se passe au cours d'une accumulation cela vous permettra de voir si
%temp%
est utilisé, par exemple (gardez à l'esprit que les fichiers de réponse sont probablement créé avec FILE_ATTRIBUTE_TEMPORARY qui devrait éviter les écritures sur le disque, si possible, tout de même). J'ai déplacé mon%TEMP%
à un disque virtuel en RAM, et ça me donne de mineur accélérations en général.Obtenir un disque RAM qui prend en charge automatiquement le chargement/sauvegarde des images de disque, de sorte que vous n'avez pas à utiliser les scripts de démarrage pour ce faire. En lecture/écriture séquentielle d'une seule image de disque est plus rapide que la synchronisation d'un grand nombre de petits fichiers.
Placez votre souvent utilisé/grand-tête des fichiers sur le disque RAM, et de remplacer votre compilateur standard chemins de la mémoire RAM lecteur de copies. Il ne sera probablement pas donner que à une amélioration après la première fois construit, même si, comme le système d'exploitation met en cache les en-têtes standard.
Garder votre source des fichiers sur votre disque dur, et de synchroniser le disque RAM - non l'inverse. Découvrez MirrorFolder pour faire la synchronisation en temps réel entre les dossiers - elle y parvient par l'intermédiaire d'un pilote de filtre, de sorte synchronise uniquement ce qui est nécessaire (et seulement les changements - 4 KO écrire un 2 GO fichier ne fera que provoquer une 4 KO écrire dans le dossier cible). Comprendre comment faire de votre IDE construire à partir de la RAM lecteur bien que les fichiers source sont sur votre disque dur... et garder à l'esprit que vous aurez besoin d'un grand lecteur RAM pour les grands projets.
Le disque ralentissement de vous engager est d'écrire, et peut-être aussi en raison de l'antivirus. Il peut varier considérablement entre les Os trop.
Avec l'idée que l'écriture est plus lente, je serais tenté de l'installation d'une construction où intermédiaire (par exemple,
.o
fichiers) et les binaires obtenir une sortie vers un autre emplacement comme un lecteur RAM.Vous pouvez ensuite relier cette bin/dossier intermédiaire à des médias plus rapides (à l'aide d'un lien symbolique ou Point de jonction NTFS).
Ma solution définitive du problème est vmtouch: https://hoytech.com/vmtouch/
Cet outil verrouille le dossier courant dans (ram) mémoire cache et vmtouch daemonizes en arrière-plan.
Mettre cela dans la coque rc pour un accès rapide:
J'ai cherché un script pour un bon moment, parce que je ne veux pas perdre beaucoup de temps sur l'écriture de mon propre ramdisk-rsync-script. Je suis sûr que j'aurais manqué certains cas limites, ce qui serait assez désagréable si le code important a été impliqué. Et je n'ai jamais aimé l'approche du scrutin.
Vmtouch semble être la solution parfaite. En outre, il ne perd pas la mémoire comme une taille fixe ramdisk n'.
Je ne voulais pas faire un test, parce que 90% de mes 1Gig source+dossier de création ont été déjà mis en cache, mais au moins, il se sent plus rapide 😉
Tout comme James Curran dit, le fait que la plupart des programmes de suivre la loi de la localité de références, le fréquente le code et les données de la page le comte sera diminué au fil du temps à une taille gérable par le système d'exploitation de cache disque.
RAM disques sont utiles lorsque les systèmes d'exploitation ont été construites avec les limites d'un tel stupide caches (Win 3.x, Win 95, DOS). Le disque RAM avantage est près de zéro, et si vous attribuez beaucoup de RAM, il va sucer la mémoire disponible pour le système de gestionnaire de cache, nuire à la performance globale du système. La règle de base est: laissez votre noyau pour le faire. C'est la même chose que la "défragmentation de la mémoire" ou "optimiseurs" les programmes: ils ont fait la force de pages de cache (donc vous obtenez plus de RAM par la suite), mais provoquant un système pour faire beaucoup de page-défaillant au cours du temps lors de vos programmes chargés commencer à poser pour le code/données qui ont été transférées.
Donc, pour plus de performance, d'obtenir un disque rapide matériel d'e/S sous-système, peut-être de RAID, plus rapide CPU, mieux chipset (non!), plus de RAM physique, etc.