Rolf B: Zeiger Wettrennen

Beitrag lesen

Hallo TS,

Na dann lad die Datei doch in ein klassisches Array (feste Elementgröße) und mach eine Binärsuche. Schneller wird es kaum gehen.

Klar geht's schneller. Wenn die zu durchsuchenden Daten vorverarbeitet in einer Datei liegen, schreibt man die Datei nicht sequenziell sondern als B-Tree. Man muss nur abwägen. Wenn es ein paar 1000 Einträge sind und jeder Eintrag 1K groß ist, kann sich das lohnen. Ist jeder Eintrag nur 50 Bytes oder so, könnte das sequenzielle Einlesen der Datei schneller sein.

Die Organisation als B-Tree bringt trotzdem noch einen Tempovorteil. Der Treffer ist dann in 0.1ms statt 1ms ermittelt. Was beim Handling von 3 Web Requests pro Sekunde komplett wurscht ist. Bei 10000 Requests pro Sekunde sieht sie Sache natürlich anders aus.

Programmiererweisheit: Optimiere an Details nur, wo es nötig ist. Wenn du Geld sparen willst, investiere in Hardware statt in Programmiererstunden. Bei massiven Performanceproblemen überdenke deine Architektur. Ist die Performance ausreichend, mach lieber Urlaub statt Mikrosekunden zu knibbeln.

Rolf

--
sumpsi - posui - clusi
0 52

Zeiger Wettrennen

  1. 0
    1. 0
      1. 0
  2. 0
    1. 0
      1. 0
        1. 0
          1. 0
        2. 0
    2. 0
      1. 0
        1. 0
          1. 0
      2. 0
        1. 0
          1. 0
            1. 0
              1. 0
                1. 0
                  1. 0
                    1. 0
                      1. 0
                      2. 0
              2. 0
                1. 0
                  1. 0
                    1. 0
                      1. 0
                        1. 0
                2. 0
                  1. 0
        2. 0
          1. 0
        3. 0
          1. 0
            1. -3
              1. 0
                1. 0
                  1. 6
                    1. 0
                      1. 0
                        1. 0
                          1. 0
                            1. 0
                      2. 0
                        1. 0
                        2. 0
                          1. 0
                            1. 0
                              1. 2
                                1. 0