wieso immer auf bits achten?



  • Es geht auch um den Arbeitsspeicher.

    @thordk: Keep it Simple? mit deiner Methode Do it the most tricky way!



  • Simpel und einfach einen std::vector<bool> verwenden, der machts schon automatisch und man bekommt als Programmierer davon nicht mal was mit, außer, dass das Programm ein bisschen langamer wird.



  • Naja, also im Endeffekt ist das sowieso Geschmackssache. Ich bevorzuge es auch, die Bits zu beschränken, anstatt alles unnötig aufzuplustern.



  • BitWax schrieb:

    Es geht auch um den Arbeitsspeicher.

    was sonst?



  • eigentlich ist es dumm zu sagen, man muss immer auf die bits achten. Bei den meisten Windowsanwendungen ist es egal. Und wenn man nen Spezialfall hat, dann muss man halt auf einzelne bits achten. Es kommt halt immer auf den Fall drauf an und nur zu sagen immer so oder so ist richtig ist dumm.



  • BitWax schrieb:

    Naja, also im Endeffekt ist das sowieso Geschmackssache.

    ???2 schrieb:

    was sonst?

    Ich wollte es nur nochmal sagen.



  • BitWax schrieb:

    Naja, also im Endeffekt ist das sowieso Geschmackssache.

    Nö



  • Doch! Oder gibt es Nachteile?



  • wenn immer maskiert werden muss wird es langsamer.



  • Man sollte erst dann von Hand optimieren, wenn man festgestellt hat, dass dieser Teil des Programms der Flaschenhals ist.

    Also erst dann Bits sparen, wenn nachweißlich dieser Teil den größten Anteil am Speicher verbraucht. Bei dem Serverbeispiel machen die 70kb Ersparnis keinen Unterschied, wenn der Server tatsächlich so viel Speicher verbraucht, dass man sich um eine Ersparnis Gedanken machen muss, dann verbraucht offensichtlich ein anderer Teil des Servers erheblich mehr Speicher und folglich sollte man sich darum bemühen an dieser Stelle Speicher einzusparen.

    Beim Sparen von Speicher sollte man so vorgehen wie auch beim Sparen von CPU-Zeit: erst messen ob es auch wirklich einen Nutzen bringt.



  • ab welcher grösse es anfängt interessant zu werden hängt einfach davon ab wo die nächste relevante grenze überschritten wird.

    wenn man z.B. einen lookup-table in einer sehr engen schleife verwendet kann es sinn machen ein paar befehle zum shiften & maskieren mehr zu verbrauchen wenn der table dadurch wieder so klein wird dass er komplett in den cache passt.

    wenn man primzahlen siebt und das maximum rausholen will macht es auch sinn einzelne bits zu adressieren statt gleich ein byte für ein bit zu verbraten.

    ...

    dass die aussage (sinngemäss) "bits sparen ist doof" IMO auf > 90% aller fälle zutrifft habe ich schon geschrieben.


Anmelden zum Antworten