knasan

Linux and more

Nutze deinen RAM

Warum man Ram statt Festplatte verwendet liegt eigentlich auf der Hand.
Ram ist 1000% schneller als eine Festplatte, sogar eine SSD muss sich hier geschlagen geben. Deswegen wollte ich mir ansehen, ob und wie es Möglich ist, StuntRally im Ram zu Spielen.

Als erstes versuchte ich mich an einer chroot Umgebung, diese war mir am Schluss viel zu groß und wirklich sauber hatte es noch nicht funktioniert. Bis mir eine Idee kam.

Der Kernel hängt ein Virtuelles Dateisystem unter /dev/shm ein. Dieses Dateisystem ist nichts anderes als ein teil des Arbeitsspeichers.

Ich erstellt ein Verzeichnis new_home in /dev/shm also Normaler User. Kopierte .config/stuntrally, .local/share/games/stuntrally und .cache/stuntrally hinein.

In einem Terminal exportierte ich nun meine Home Variable

export HOME=/dev/shm/new_home

und startete das Spiel.

Mir ist sofort aufgefallen, dass das Game viel flüssiger läuft.

Aus diesem Grund habe ich einen wrapper geschrieben, der alle Daten von Suntrally nach /dev/shm/ Synchronisiert und beim beenden wieder nach sein Home.

Mein Ebuild habe ich ein neues USE-Flag spendiert das diesen Wrapper auf Wunsch Installiert.

Für alle die gerne diesen Wrapper verwenden möchten, aber kein Gentoo/Funtoo nutzen, hier das wrapper-script.

suntrally_wrapper

#!/bin/bash

#-------------------------------------------------------------------------------
# Author: Sandy Marko Knauer
# Email: knamarksan@gmail.com
# URL: https://knasan.wordpress.com/2013/02/09/nutze-deinen-ram/
# Description: StuntRally synchronizes files to StuntRally in memory to execute.
# Version: 0.0.1
# License: GNU GPL-v3
#-------------------------------------------------------------------------------

tmpfs=$(grep -c "/dev/shm" /proc/mounts)

new_home="/dev/shm/$USER"_new_home
old_home="$HOME"

if [ $tmpfs = "0" ]; then
echo "/tmp is not as a tmpfs filesystem"
exit
fi

stuntrally_cache=".cache/stuntrally/"
stuntrally_config=".config/stuntrally/"
stuntrally_local=".local/share/games/stuntrally/"

mkdir -p $new_home || exit
mkdir -p $new_home/$stuntrally_cache || exit
mkdir -p $new_home/$stuntrally_config || exit
mkdir -p $new_home/$stuntrally_local || exit

if [ -d $HOME/$stuntrally_cache ]; then
rsync -a --progress $HOME/$stuntrally_cache $new_home/$stuntrally_cache || exit
else
mkdir -p $HOME/$stuntrally_cache || exit
fi

if [ -d $HOME/$stuntrally_local ]; then
rsync -a --progress $HOME/$stuntrally_local $new_home/$stuntrally_local || exit
else
mkdir -p $HOME/$stuntrally_local || exit
fi

if [ -d $HOME/$stuntrally_config ]; then
rsync -a --progress $HOME/$stuntrally_config $new_home/$stuntrally_config || exit
else
mkdir -p $HOME/$stuntrally_config || exit
fi

export HOME=$new_home
/usr/bin/stuntrally

rsync -a $new_home/$stuntrally_local $old_home/$stuntrally_local --numeric-ids --progress --delete || ex>
rsync -a $new_home/$stuntrally_config $old_home/$stuntrally_config --numeric-ids --progress --delete || ex>
rsync -a $new_home/$stuntrally_cache $old_home/$stuntrally_cache --numeric-ids --progress --delete || ex>

rm -r $new_home

Hier nochmal ein direklink auf die Datei, da leider die Formatierung verloren geht. https://github.com/knasan/ebuilds/blob/master/games-sports/stuntrally/files/stuntrally_wrapper

StuntRally unterliegt der GNU/GPL-v3, deswegen habe ich mich auch für diese Lizenz entschieden.

-Sandy

Advertisements

Einzelbeitrag-Navigation

Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s

%d Bloggern gefällt das: