Long time no see

Hier gehört alles rein über das man einfach reden kann
Benutzeravatar
CBot
Supporting Programmer
Supporting Programmer
Beiträge: 54
Registriert: Dienstag 29. August 2006, 14:01

Re: Long time no see

Beitrag von CBot » Dienstag 22. April 2014, 05:04

Da ich nicht mehr im Detail stecke, kann ich nur Ratschlaege allgemeiner Natur oder basierend auf meiner schwindenden Erinnerung an einen veralteten Stand geben. Wenn das nuetzlich ist, dann fragt mich ruhig, gern auch direkt per PM. Aber wahrscheinlich ist es sinnvoller in einem oeffentlichen Thread, damit alle was davon haben. Evtl. brauch ich dann aber einen Hinweis per PM, da ich nicht alles in Real Time mitlese. :-D Ich hab aber vor, ein paar Sachen im Forum zu verfolgen.

Anderes Thema: Wie sieht es denn mit Heap-Analysen aus? Ich kenne mich damit in C++ ueberhaupt nicht aus, und stelle mir das auch etwas schwieriger vor, es scheint mir aber nicht unmoeglich (z. B. gperftools). Ich schaetze, es waere einen Versuch wert, um Memory Leaks auf die Schliche zu kommen. Ich erinnere mich da an ein altes Problem mit Abstuerzen nach hoeherer Rundenzahl, dessen Ursache wir nie gefunden haben. Es kann aber gut sein, dass wir das aus Versehen gefixt haben. :-)

@Anonymissimus: Habt Ihr irgendwelche Branching Conventions (was wird wann gebrancht, gereviewt, gemergt, Branch Naming Conventions), oder kann ich einfach so drauf los branchen? Wie steht Ihr grundsaetzlich zu (Code-)Reviews/Pull-Requests? (Als Anregung: solche Fragen koennte man in einem Development-Forum diskutieren bzw. Standards dort festhalten.)
I wish I could read my mind.

Benutzeravatar
rainer
Vizeadmiral
Vizeadmiral
Beiträge: 2897
Registriert: Mittwoch 12. September 2007, 10:57

Re: Long time no see

Beitrag von rainer » Dienstag 22. April 2014, 06:05

CBot hat geschrieben:Ich erinnere mich da an ein altes Problem mit Abstuerzen nach hoeherer Rundenzahl, dessen Ursache wir nie gefunden haben. Es kann aber gut sein, dass wir das aus Versehen gefixt haben. :-)
Hinweis auf http://birth-of-the-empires.de/wiki/ind ... r_Bote.exe :) , und dann dem autoturn-Link folgen...könnte hilfreich sein -> das höchste war mal ein Autoturn bis Runde 3500, keine Probleme mehr :wink: (Autoturn kurz: spielt bis zur angegebenen Runde, KI spielt die Rassen, dann normal weiter, z.B. als menschlicher Spieler, oder speichern + Re-Start bis zur nächsten (höheren) Autoturn-Angabe

Anonymissimus
Flottenkapitän
Flottenkapitän
Beiträge: 990
Registriert: Freitag 14. Mai 2010, 14:39

Re: Long time no see

Beitrag von Anonymissimus » Dienstag 22. April 2014, 15:19

CBot hat geschrieben:Anderes Thema: Wie sieht es denn mit Heap-Analysen aus? Ich kenne mich damit in C++ ueberhaupt nicht aus, und stelle mir das auch etwas schwieriger vor, es scheint mir aber nicht unmoeglich (z. B. gperftools). Ich schaetze, es waere einen Versuch wert, um Memory Leaks auf die Schliche zu kommen. Ich erinnere mich da an ein altes Problem mit Abstuerzen nach hoeherer Rundenzahl, dessen Ursache wir nie gefunden haben. Es kann aber gut sein, dass wir das aus Versehen gefixt haben. :-)
Ich habe auf BotE DrMemory, wine+valgrind (ja, man kann auch win-only Projekte mit valgrind überprüfen) und Visual Leak Detector angewendet. Besonders bei memory leaks haben die tools ein Paar Sachen gefunden, siehe zB commit 5deeb1e1b00e5561073a9c5bfc3d1de975d1e96e; wenn das wirklich leaks waren, dann war es möglicherweise die Ursache für was du oben beschreibst, da dieser code sehr viel aufgerufen wird. Laut valgrind waren das alles leaks, und die Doku über AllocSysString() gibt dem tool Recht.
Also wahrscheinlich ist BotE weitgehend clean was leaks betrifft, obwohl einige der Fehler nur von einem Teil der tools angezeigt werden, da ist es wie wenn man statische Analysetools/Kompiler kombiniert. Das von dir genannte tool scheint nur leaks zu prüfen (und keine sonstigen Speicherfehler), von daher glaub ich nicht, dass es sich groß lohnt, nach den insgesamt 4 (mit MSVC eigenem) memory leak check tools.
@Anonymissimus: Habt Ihr irgendwelche Branching Conventions (was wird wann gebrancht, gereviewt, gemergt, Branch Naming Conventions), oder kann ich einfach so drauf los branchen? Wie steht Ihr grundsaetzlich zu (Code-)Reviews/Pull-Requests? (Als Anregung: solche Fragen koennte man in einem Development-Forum diskutieren bzw. Standards dort festhalten.)
Ummm...lol. Ich glaube, es gibt überhaupt gar keine Standards. Keine offiziellen jedenfalls. Wobei ich einige coding standards für absolut sinnvoll halte, zB in der Art wie http://wiki.wesnoth.org/CodingStandards und ich zumindest einigen davon auch folge.
reviews ? Keine Ahnung. pull requests ? Gabs noch keine. Naja ich kenn sie halbwegs, feine Sache.

EDIT
rainer hat geschrieben:das höchste war mal ein Autoturn bis Runde 3500, keine Probleme mehr :wink:
Bei sowas ist es ganz nützlich, im Taskmanager den Speicherverbrauch zu beobachten. Besonders wenn die Auslagerungsdatei während der Laufzeit eines Programms immer weiter anwächst, und dann beim Beenden plötzlich stark schrumpft, ist das ein eindeuter Hinweis auf memory leaks im betreffenden Programm (BotE-unabhängig, und sollte auch unter Linux gelten, in analoger Form).

Antworten

Zurück zu „Talk talk talk“