Seite 16 von 74
Re: Anti-Jammer-Thread
Verfasst: 24.05.2012, 20:01
von Krishty
Ob das gut oder schlecht ist, hängt von zwei Fragen ab:
- Ist die Anwendung symmetrisch (wird auf dem Zielsystem genau so oft komprimiert wie extrahiert)?
- Wo bekommt das Zielsystem deine Daten her? (Für das Internet wäre diese Kompressionsrate zu niedrig; für DVD wäre das eine schöne Verbesserung; auf PCs ist die meiste Kompression dieser Größenordnung Verschwendung.)
Trotzdem Glückwunsch.
Re: Anti-Jammer-Thread
Verfasst: 27.05.2012, 00:50
von Jonathan
Ich habe angefangen, das Shadowmapping von meinem Egoshooter-Projekt in "Das Volk und der Turm" zu integrieren. Bis auf ein paar kleine Grafikfehler sieht das auch schon ziemlich hübsch aus :)
Re: Anti-Jammer-Thread
Verfasst: 27.05.2012, 01:16
von TDK
Ist die Anwendung symmetrisch (wird auf dem Zielsystem genau so oft komprimiert wie extrahiert)?
Die Daten werden nur ein mal beim Import komprimiert. Da beim Komprimieren allerdings tausende Einzeldateien komprimiert werden, spielt die Zeit schon eine Rolle. Die Content Creator reagieren sonst immer so gereizt, wenn alles so lange dauert...
Ansonsten werden diese auch teilweise während des Simulationslaufes nachgeladen, ab und zu mehrmals. Und da ist eine schnelle Leserate, und vor allem auch weniger Festplattenknistern, von Vorteil. Und die CPU benötige ich nebenbei auch noch.
Ich verwende für alle komprimierten Dateien ein Format, welches zugleich die Versionierung und den Inhaltstyp gegenprüft. Zudem ist das Format so intelligent, dass wenn es eine Änderung der Originalversion festgestellt wird (besonders XML-Konfigurationen), die Datei sofort neu importiert werden kann.
Wo bekommt das Zielsystem deine Daten her? (Für das Internet wäre diese Kompressionsrate zu niedrig; für DVD wäre das eine schöne Verbesserung; auf PCs ist die meiste Kompression dieser Größenordnung Verschwendung.)
3D-Objekte, Konfigurationen (Node-Attribute-Value System), Texturen (teilweise DXT 5) und sonstige binäre Dateien wie World Files und Terrain Files. Jedes MB zählt, da das gesamte Programm mit den verschiedenen Welten viele Gigabyte in Anspruch nehmen wird.
Re: Anti-Jammer-Thread
Verfasst: 27.05.2012, 11:40
von Krishty
TDK hat geschrieben:Da beim Komprimieren allerdings tausende Einzeldateien komprimiert werden, spielt die Zeit schon eine Rolle. Die Content Creator reagieren sonst immer so gereizt, wenn alles so lange dauert...
Dann komprimier es halt nicht während der Entwicklungsphase, sondern nur vorm Ausliefern; dann schrumpft der Zeitaufwand gegen Null.
TDK hat geschrieben:Ansonsten werden diese auch teilweise während des Simulationslaufes nachgeladen, ab und zu mehrmals. Und da ist eine schnelle Leserate, und vor allem auch weniger Festplattenknistern, von Vorteil. Und die CPU benötige ich nebenbei auch noch.
Dann komprimier am besten garnicht – dann werden ab dem zweiten Lauf weder Festplatte noch CPU
überhaupt benötigt.
TDK hat geschrieben:Jedes MB zählt, da das gesamte Programm mit den verschiedenen Welten viele Gigabyte in Anspruch nehmen wird.
Bei Snappy kannst du mir nicht erzählen, dass „jedes Byte zählt“. Wenn die Welten sechs oder sieben GiB in Anspruch nehmen, dann sollen sie das halt. (Ich werte das auch einfach mal als
die Daten kommen von der Festplatte eines PCs).
Afaik nutzen selbst RAD Game Tools Kompression nur noch auf Konsolen, weil der Windows Page Cache auf dem PC
alles wegrockt. Und mit
wegrocken meine ich an eigenen Beobachtungen: 12.000 Dateien in einer Drittelsekunde in den Speicher holen; 4 GiB unkomprimierte Texturen 100× schneller einblenden als die zlib-komprimierten Varianten – mit CPU-Unkosten gegen Null.
Ich habe bei meinem derzeitigen Projekt auch die Wahl, es mit einem komprimierten Paket aus zu starten oder mit einem unkomprimierten Verzeichnis (erwähnte 12k Dateien) – und ich nehme
immer das Verzeichnis, weil mich die Wartezeiten sonst in den Wahnsinn treiben.
Komprimiert werden sollte nur für die Auslieferung via Installer. Davor und danach hat alles unkomprimiert zu sein.
Re: Anti-Jammer-Thread
Verfasst: 27.05.2012, 12:04
von eXile
Krishty hat geschrieben:Afaik nutzen selbst RAD Game Tools Kompression nur noch auf Konsolen, weil der Windows Page Cache auf dem PC
alles wegrockt. Und mit
wegrocken meine ich: 12.000 Dateien in einer Drittelsekunde in den Speicher holen; 4 GiB unkomprimierte Texturen 100× schneller einblenden als die zlib-komprimierten Varianten – mit CPU-Unkosten gegen Null.
Hart sekundiert. Das einzige, was man noch selber machen kann, ist, die Dateien selber zu prefetchen (d.h. ein Memory-Mapping darauf anlegen), wenn man weiß, dass man sie in Zukunft benötigen wird. In diesem Falle hat man einfach mehr Informationen als das Windows-Speichersystem, welches ja schlecht in die Zukunft schauen kann.
Re: Anti-Jammer-Thread
Verfasst: 27.05.2012, 12:15
von Krishty
eXile hat geschrieben:In diesem Falle hat man einfach mehr Informationen als das Windows-Speichersystem, welches ja schlecht in die Zukunft schauen kann.
Wobei auch das selten zum Problem werden sollte – kommt der Kunde nach dem Kauf am Montag jeden Tag um 17:30 (nach Arbeit und Essen) an den PC, um eine Runde Deathmatch auf seiner Lieblingsspielkarte zu spielen, wird Windows ab MI alle Spieldaten um 17:25 vollständig im Page Cache haben. Falls man dann auf Kompression verzichtet hat, müsste der Kunde innerhalb von zehn Sekunden nach dem Klicken auf die Verknüpfung im Blut baden können. Falls man aber auf Kompression gesetzt hat, lädt es genau so lahm wie immer.
Unrelated: Ich habe
shell32.dll aus meinem Programm entfernt gekriegt. Sie hatte
von den 40 MiB Images, die mein Prozess benötigt, 13 ausgemacht – und damit etwa gleich viel wie Direct3D und AMD-Treiber zusammen.
Jetzt möchte ich unbedingt die VC-CRT raushaben – die frisst zwar nicht viel Speicher, mappt aber Font-Dateien und Locales aus dem Windows-Verzeichnis. Meine Fresse, was für ein Trauerspiel.
Re: Anti-Jammer-Thread
Verfasst: 27.05.2012, 20:30
von eXile
Krishty hat geschrieben:eXile hat geschrieben:In diesem Falle hat man einfach mehr Informationen als das Windows-Speichersystem, welches ja schlecht in die Zukunft schauen kann.
Wobei auch das selten zum Problem werden sollte – kommt der Kunde nach dem Kauf am Montag jeden Tag um 17:30 (nach Arbeit und Essen) an den PC, um eine Runde Deathmatch auf seiner Lieblingsspielkarte zu spielen, wird Windows ab MI alle Spieldaten um 17:25 vollständig im Page Cache haben.
Trollierst du mich gerade? ;) Ich meinte eher: Es ist ein Cache, kein Precache. Dass gleich in einem Spiel das Level zu Ende ist, und das nächste anfängt, und man somit schon mal leise im Hintergrund anfangen könnte, ein wenig vorzuladen, ist durchaus sinnig.
Wenn man also einen grandiosen Cache wie unter Windows hat, ist nicht mehr die Frage, wie man Cachen soll (nämlich mit Memory-Mappings und dem Windows-Cache), sondern
was und
wann man etwas cachen sollte.
Vielleicht erinnere ich mich auch nur einfach sentimental an die Zeiten zurück, als ich noch in Spielen in sekundenschnelle Speichern und Laden konnte. :(
(Und was soll Windows MI sein? Der ungeliebte Bruder von Windows ME mit Buckelrücken? Schwätz deutlich Junge! ;))
Re: Anti-Jammer-Thread
Verfasst: 27.05.2012, 21:02
von Krishty
Upps; da hast du völlig recht. Ich bin ein wenig in meiner
Ich lade einfach alles auf einmal direkt am Anfang-Philosophie steckengeblieben ;-)
(Und was soll Windows MI sein? Der ungeliebte Bruder von Windows ME mit Buckelrücken? Schwätz deutlich Junge! ;))
Okay, nochmal für alle: Windows hat dann ab
Mittwoch nachmittag 17:25 alles parat ;)
Re: Anti-Jammer-Thread
Verfasst: 28.05.2012, 12:46
von klickverbot
Nach wochenlangem Hinauszögern habe ich es endlich geschafft, (m)einen Artikel über Functional Purity in D fertig zu schreiben:
http://klickverbot.at/blog/2012/05/purity-in-d/. Sorry für die schamlose Eigenwerbung, aber ich dachte, nach
Carmack's kürzlich erschienenem AltDevBlogADay-Artikel könnte das für so manchen interessant sein…
Diskussion auf
Reddit und
Hacker News. Feedback aller Art höchst willkommen!
Re: Anti-Jammer-Thread
Verfasst: 31.05.2012, 13:04
von Artificial Mind
OMNOMNOM, endlich kann ich wieder vernünftig arbeiten :D (scnr)
Re: Anti-Jammer-Thread
Verfasst: 31.05.2012, 13:07
von Andre
Uff. Was hast du dafür ausgegeben wenn man fragen darf? ;)
Re: Anti-Jammer-Thread
Verfasst: 31.05.2012, 13:12
von eXile
Da kann man nur gratulieren. 12 Cores? Was ist das für eine Prozessorkonfiguration, die du hast?
Ich finde es auch sehr schön, dass du die Fensterhöhe exakt und pixel-genau zwischen beiden Fenstern angeglichen hast. Nur leider ist der Rahmen oben fünf Pixel zu klein. Ja ich achte auf sowas. ;)
Re: Anti-Jammer-Thread
Verfasst: 31.05.2012, 13:34
von antisteo
Artificial Mind hat geschrieben:i7x6.680gtx.png
OMNOMNOM, endlich kann ich wieder vernünftig arbeiten :D (scnr)
Lächerliche 4 GiB RAM
Re: Anti-Jammer-Thread
Verfasst: 31.05.2012, 14:04
von Lynxeye
Ich tippe einfach mal auf einen Sandy Bridge E. Und die 32GiB RAM sehen lecker aus, wobei ich mit 16 derzeit noch zufrieden bin.
Ich frage mich aber immer wieder warum Windows so einen zwanghaften Drang zum auslagern hat. Selbst bei dieser Konfig schiebt der bei dir immer noch Speicher auf die Platte. :?
Re: Anti-Jammer-Thread
Verfasst: 31.05.2012, 14:48
von eXile
Lynxeye hat geschrieben:Ich frage mich aber immer wieder warum Windows so einen zwanghaften Drang zum auslagern hat. Selbst bei dieser Konfig schiebt der bei dir immer noch Speicher auf die Platte. :?
Das habe ich auch bemerkt, darum habe ich die Auslagerungsdatei komplett deaktiviert.
Re: Anti-Jammer-Thread
Verfasst: 31.05.2012, 16:31
von simbad
Linux hat auch den spleen auslagern zu müssen.
Besonders ärgerlich, wenn man keinen Swap-Space eingerichtet hat, weil dann nach einem magischen Schlüssel irgendein Prozess gekillt wird.
Das ist schon seit 2.4.irgendwas im Kernel enthalten und bis jetzt noch nicht gefunden worden.
Re: Anti-Jammer-Thread
Verfasst: 31.05.2012, 16:45
von Lynxeye
simbad hat geschrieben:Linux hat auch den spleen auslagern zu müssen.
Besonders ärgerlich, wenn man keinen Swap-Space eingerichtet hat, weil dann nach einem magischen Schlüssel irgendein Prozess gekillt wird.
Das ist schon seit 2.4.irgendwas im Kernel enthalten und bis jetzt noch nicht gefunden worden.
Hast du dazu was genaueres? Ich habe hier aus historischen Gründen immer noch eine 2GB Swap Partition eingerichtet, und auf die ist seit langer Zeit nicht 1MB mehr geschrieben worden. Ich habe allerdings auch nie wirklich mehr als 50% reale Ramauslastung, die 16GB habe ich nur um entsprechend viel Pagecache vorzuhalten.
Re: Anti-Jammer-Thread
Verfasst: 31.05.2012, 18:19
von simbad
Ja.
Unter Last kommt das virtual memory management von Linux aus irgendwelchen unerfindlichen Gründen zu dem Schluss, das im Hauptspeicher kein Platz mehr ist und ruft dann den Swapper an, damit der Platz schaft. Und der Swapper hat eine Funktion als Last-Resort, in der ein Prozess gekillt wird, wenn der Swap-Space voll ist.
Gibt es keine Swap-Partition killt er gleich.
Man hat mal im 2.6.8 Kernel einen Versuch gestartet das VMM zu ersetzen. Das hat aber nie fehlerfrei funktioniert. Daraufhin hat man das alte VMM wieder eingebaut und lebt nun mit diesem Verhalten. Denn ich kann auf meinem Rechner, der schlappe 28GB-RAM hat, nach einem Virenscan mit free schauen wie die Speichernutzung ist und voila.
Code: Alles auswählen
total used free shared buffers cached
Mem: 28937236 28779972 157264 0 1140560 25396332
-/+ buffers/cache: 2243080 26694156
Swap: 62500848 25912 62474936
Es gibt keinen vernünftigen Grund auszulagern. 25G Cached. Da wird doch wohl ein bisschen was übrig sein um sich das swappen zu sparen.
Fakt ist, das ich schon diverse Linux-Systeme gesehen habe die keinen Swap-Space hatten und über die man mir berichtete, das da manchmal Prozesse verschwinden würden. Nach einrichten des Swap-Space, und sei er noch so klein, war das Phänomen erledigt.
Re: Anti-Jammer-Thread
Verfasst: 31.05.2012, 21:21
von antisteo
simbad hat geschrieben:Fakt ist, das ich schon diverse Linux-Systeme gesehen habe die keinen Swap-Space hatten und über die man mir berichtete, das da manchmal Prozesse verschwinden würden. Nach einrichten des Swap-Space, und sei er noch so klein, war das Phänomen erledigt.
Jawoll, wir beschreiten das Zeitalter der fehlertoleranten Software!
Re: Anti-Jammer-Thread
Verfasst: 31.05.2012, 21:24
von Artificial Mind
Andre hat geschrieben:Uff. Was hast du dafür ausgegeben wenn man fragen darf? ;)
Also der six-core i7 war so ca. 500€, die 680 gtx ca. 550€, beim RAM musste ich teureren 240€ für 32GB nehmen, da mir der 180€ 32GB von Mushkin mit Fehlern zugesandt wurde. Mainboard auch nochmal 240€. Dazu kommt 2 mal 120 GB SSD im RAID 0 mit je 80k IOPs für je 85€.
eXile hat geschrieben:Da kann man nur gratulieren. 12 Cores? Was ist das für eine Prozessorkonfiguration, die du hast?
Das ist der neue i7 3930K, 6 Kerne @ 3.5 GHz mit HT.
eXile hat geschrieben:Ich finde es auch sehr schön, dass du die Fensterhöhe exakt und pixel-genau zwischen beiden Fenstern angeglichen hast. Nur leider ist der Rahmen oben fünf Pixel zu klein. Ja ich achte auf sowas. ;)
Arrrgh, ja ich hatte nur auf Fensterhöhe geachtet. Da das aber nach Weiß ausfadet, war mir der Rahmenabstand egal ;)
antisteo hat geschrieben:Lächerliche 4 GiB RAM
Auf der Grafikkarte.
Re: Anti-Jammer-Thread
Verfasst: 31.05.2012, 23:48
von CodingCat
Na wenigstens weiß ich jetzt, an wen ich Implementierungen zum Ultra High End Benchmark schicken kann. ;)
Re: Anti-Jammer-Thread
Verfasst: 01.06.2012, 01:21
von Artificial Mind
Tu dir keinen Zwang an, meine Nummer hast du ja ;)
Re: Anti-Jammer-Thread
Verfasst: 02.06.2012, 10:41
von Krishty
Ist Standard-Ausnahmebehandlung eingeschaltet (/EHsc), nimmt Visual C++ an, dass extern "C"-deklarierte Funktionen keine Ausnahmen werfen. Das ist tatsächlich mal was Sinnvolles und spart mir jede Menge throw()-Dekorationen.
Re: Anti-Jammer-Thread
Verfasst: 02.06.2012, 19:59
von dot
http://herbsutter.com/2012/05/04/lookin ... engineers/
http://herbsutter.com/2012/06/01/were-h ... gain-more/
Wer hätte das gedacht...
Kann es tatsächlich wahr sein, dass Microsoft es mit der "C++ Renaissance" doch ernst meint? :D
Re: Anti-Jammer-Thread
Verfasst: 02.06.2012, 20:08
von Krishty
lol – AMP, PPL, Windows Phone und GPU. KA, was Casablanca ist; aber es hat sicher mit Wolkendiagrammen zu tun.
Re: Anti-Jammer-Thread
Verfasst: 02.06.2012, 20:48
von eXile
Krishty hat geschrieben:KA, was Casablanca ist; aber es hat sicher mit Wolkendiagrammen zu tun.
Warum nur

Re: Anti-Jammer-Thread
Verfasst: 04.06.2012, 20:44
von Krishty
SyncToy (meine einzige Form der Quelltextarchivierung) verschiebt zum Glück jede überschriebene Datei in den Papierkorb. Das hat mir meinen süßen Popo gerettet, nachdem ich schlafentzogen die Sicherheitskopie aufs Entwicklungsverzeichnis gespiegelt habe statt umgekehrt.
Re: Anti-Jammer-Thread
Verfasst: 05.06.2012, 19:21
von eXile
Nvidia buddelt dann
mal wieder ihre Waldfee aus; wobei ich im Video klar die Nachteile von FXAA sehen konnte. Für die gigantischen Screenshots haben die (vermute ich mal) einfach die Szene mehrfach mit (auf der Bildebene) verschobenen Projektionsmatrizen gerendert.
Re: Anti-Jammer-Thread
Verfasst: 05.06.2012, 23:14
von CodingCat
Fantastisch, wie sie es mit 4 Millionen Dreiecken und 40.000 Haaren immer noch schaffen, dass alles nach billigstem CG aussieht.
Re: Anti-Jammer-Thread
Verfasst: 05.06.2012, 23:35
von Andre
Man sieht vorallem nichts neues wenn man mal in deren SDKs geschaut hat. Also so vom Hocker hauen tut mich diese next-next-gen noch nicht. Und das obwohl doch immer alle gesagt haben sie würde alle vom Stuhl/Sofa fegen.