Wie wir alle wissen arbeitet nicht jede Firma immer zu 100% "fein" so wie es eigentlich sein oder wir uns das "erhoffen".
Ich habe mich nun dazu entschieden auch in meinem Blog darauf aufmerksam zu machen.
Der Artikel heißt OS Tube und ist unter http://www.thelittlebug.org eigentlich nicht zu verfehlen.
Viel Spass beim schmunzeln und lg wünscht herby[/url]
Dreiste Firmen
-
- User
- Beiträge: 188
- Registriert: Donnerstag 20. Juli 2006, 20:46
- Wohnort: Wien
- Kontaktdaten:
Hoi,
ich weiß nicht worum es (Dir) geht und sage auch nicht, daß ich gut finde, was diese Firma macht, aber bzgl. dessen was Open Source so alles beinhalten soll kann man auch anderer Meinung sein. Einen guten Überblick über die Geschichte des Begriffs bietet Volker Grassmucks Buch: Link auf die Bundeszentrale für Politische Bildung, PDF dort verlinkt.
Gruß & viel Erfolg,
Christian
PS Dein Blog hat rel. viele Rechtschreibfehler.
ich weiß nicht worum es (Dir) geht und sage auch nicht, daß ich gut finde, was diese Firma macht, aber bzgl. dessen was Open Source so alles beinhalten soll kann man auch anderer Meinung sein. Einen guten Überblick über die Geschichte des Begriffs bietet Volker Grassmucks Buch: Link auf die Bundeszentrale für Politische Bildung, PDF dort verlinkt.
Gruß & viel Erfolg,
Christian
PS Dein Blog hat rel. viele Rechtschreibfehler.
@thelittlebug: Ich hätte ja gerne einen Kommentar zu dem C#-2D-Array-Artikel geschrieben, aber das Captcha bekomme ich einfach nicht gelöst.
Da die echte 2D-Variante nur halb so schnell ist wie der Fake, liegt die Vermutung nahe, dass dort ein bestimmter Vorgang doppelt so oft durchgeführt wird wie bei der Fake-Variante. Und da wollte ich einfach mal auf den Test der Array-Grenzen tippen. Der muss bei dem echten 2D pro Zugriff für beide Dimensionen gemacht werden und beim Fake nur für eine.
Damit liesse sich auch der fehlende Unterschied bei C++ erklären, denn die Berechnung des Offsets dürfte, ob man das nun dem Compiler überlässt, oder selbst macht, die gleiche sein.
Da die echte 2D-Variante nur halb so schnell ist wie der Fake, liegt die Vermutung nahe, dass dort ein bestimmter Vorgang doppelt so oft durchgeführt wird wie bei der Fake-Variante. Und da wollte ich einfach mal auf den Test der Array-Grenzen tippen. Der muss bei dem echten 2D pro Zugriff für beide Dimensionen gemacht werden und beim Fake nur für eine.
Damit liesse sich auch der fehlende Unterschied bei C++ erklären, denn die Berechnung des Offsets dürfte, ob man das nun dem Compiler überlässt, oder selbst macht, die gleiche sein.
- birkenfeld
- Python-Forum Veteran
- Beiträge: 1603
- Registriert: Montag 20. März 2006, 15:29
- Wohnort: Die aufstrebende Universitätsstadt bei München
Toll. Was bringts, wenn Hinz und Kunz ein YouTube aufmacht?
Hinz und Kunz kann wegen Urheberrechtsverletzungen verklagt oder wegen was weiss ich abgemahnt werden. Das gibt Jobs für Anwälte. Alles was Arbeit bringt ist gut! 

-
- User
- Beiträge: 188
- Registriert: Donnerstag 20. Juli 2006, 20:46
- Wohnort: Wien
- Kontaktdaten:
hi 
@CM: Danke für den Link zum Buch. Werde ich mir in ruhiger Stunde einmal durchlesen. Zum Thema Rechtschreibfehler finde ich nur die bei mir üblichen Fallfehler, die mehr als eigenwillige Groß/Kleinschreibung, "verwurschtelte" Sätze und Tippfehler. Rechtschreibfehler im eigentlichen Sinn finde ich nicht, sonst wären sie ja auch nicht drinnen. Du kannst mir aber sicherlich ein paar der besten Beispiele raussuchen, oder? Ich sehe mein Blog als Notizheft an, wenn es allerdings für andere schwer zu lesen ist oder Sie sich sogar daran stören bin ich durchaus bereit dagegen etwas zu unternehmen
@BlackJack: Die Captchas habe ich mittlerweile wieder deaktiviert. Bis zur nächten Spamwelle
Wennst dich ein wenig beeilst sollte es noch was werden
Interessant finde ich es dennoch das auch in C++ der Zugriff auf echte 2D Arrays länger dauert. C++ prüft eigentlich keine Arraygrenzen, wie man an etlichen Zugriffsverletzungen die man produzieren kann erkennt.
@birkenfeld: Es ist erstaunlich wie viele Leute ein Videoportal ala Youtube betreiben. Ein wenig lächerlich finde ich es auch wenn Videoportale ~20 selbstgefilmte Handyvideos zum ansehen anbieten. Aber wers braucht....
lgherby
edit: @CM: vielleicht meinst du die alte Rechtschreibung? Ich hab das jetzt mal durch OpenOffice gejagt und im ersten großen Beitrag 3 Rechtschreibfehler gefunden. Tippfehler ( fehlende Buchstaben oder "Verdreher" ) habe ich auch ein paar gefunden. Ich finde es nicht so schlimm, aber ich warte mal ab was du dazu meinst

@CM: Danke für den Link zum Buch. Werde ich mir in ruhiger Stunde einmal durchlesen. Zum Thema Rechtschreibfehler finde ich nur die bei mir üblichen Fallfehler, die mehr als eigenwillige Groß/Kleinschreibung, "verwurschtelte" Sätze und Tippfehler. Rechtschreibfehler im eigentlichen Sinn finde ich nicht, sonst wären sie ja auch nicht drinnen. Du kannst mir aber sicherlich ein paar der besten Beispiele raussuchen, oder? Ich sehe mein Blog als Notizheft an, wenn es allerdings für andere schwer zu lesen ist oder Sie sich sogar daran stören bin ich durchaus bereit dagegen etwas zu unternehmen

@BlackJack: Die Captchas habe ich mittlerweile wieder deaktiviert. Bis zur nächten Spamwelle


@birkenfeld: Es ist erstaunlich wie viele Leute ein Videoportal ala Youtube betreiben. Ein wenig lächerlich finde ich es auch wenn Videoportale ~20 selbstgefilmte Handyvideos zum ansehen anbieten. Aber wers braucht....

lgherby
edit: @CM: vielleicht meinst du die alte Rechtschreibung? Ich hab das jetzt mal durch OpenOffice gejagt und im ersten großen Beitrag 3 Rechtschreibfehler gefunden. Tippfehler ( fehlende Buchstaben oder "Verdreher" ) habe ich auch ein paar gefunden. Ich finde es nicht so schlimm, aber ich warte mal ab was du dazu meinst

Bei C++ scheint mir der Unterschied zu hoch. Ich vermute Du misst zwei verschiedene Sachen. Die korrekte innerste Zeile ist:
Man beachte die Reihenfolge von `x` und `y`. Andersherum passt es nicht zu der Indexberechnung in der Fake-Variante. So bekomme ich mit dem g++ folgende Ergebnisse:
real: 312 - 325 ms
fake: 216 - 220 ms
Der Unterschied erklärt sich durch die Optimierung. Im "real"-Fall werden die Zähler alle 1:1 auf Register abgebildet und es gibt eine Multiplikation pro Feldzugriff. Im "fake"-Fall wird nur addiert. Ein Register hält den Zeilenoffset und es wird in jedem Durchlauf der äusseren Schleife 1000 addiert und auf die Abbruchbedingung 1000000 geprüft, und ein Register enthält einen Zähler für die 1000 Elemente einer Zeile.
Code: Alles auswählen
a2d[y][x] = 1;
real: 312 - 325 ms
fake: 216 - 220 ms
Der Unterschied erklärt sich durch die Optimierung. Im "real"-Fall werden die Zähler alle 1:1 auf Register abgebildet und es gibt eine Multiplikation pro Feldzugriff. Im "fake"-Fall wird nur addiert. Ein Register hält den Zeilenoffset und es wird in jedem Durchlauf der äusseren Schleife 1000 addiert und auf die Abbruchbedingung 1000000 geprüft, und ein Register enthält einen Zähler für die 1000 Elemente einer Zeile.
-
- User
- Beiträge: 188
- Registriert: Donnerstag 20. Juli 2006, 20:46
- Wohnort: Wien
- Kontaktdaten:
@BlackJack:
Du hast natürlich recht, da hab ich eine Fehler mit den beiden Zählern gemacht und sie doch tatsächlich vertauscht
Ich komme nun auch auf ähnliche Ergebnisse in g++:
real: ~850 ms
fake: ~750 ms
Sobald ich die Optimierung einschalte wird die Schleife aber sowieso gekillt und das Array 1x auf den Wert gestellt.
Die ursprünglichen Tests habe ich unter VisalC++ erstellt (MSVC8?) und es scheint so als ob g++ bei den Optimierungen weiter geht als VC.
lgherby[/code]
Du hast natürlich recht, da hab ich eine Fehler mit den beiden Zählern gemacht und sie doch tatsächlich vertauscht

Ich komme nun auch auf ähnliche Ergebnisse in g++:
real: ~850 ms
fake: ~750 ms
Sobald ich die Optimierung einschalte wird die Schleife aber sowieso gekillt und das Array 1x auf den Wert gestellt.
Die ursprünglichen Tests habe ich unter VisalC++ erstellt (MSVC8?) und es scheint so als ob g++ bei den Optimierungen weiter geht als VC.
lgherby[/code]
Wirklich schnell ist das hier:
Auch ohne Optimierungen. 
Code: Alles auswählen
void fast() { memset(a2d, 1, sizeof(a2d)); }

-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Was den OS Tube-Artikel angeht: das ist eben auch ein Grund, warum ich den Begriff ``Open Source`` ungern nutze und ``Freie Software`` bevorzuge - weil sie eben die Freiheit der Software ausdrückt und nicht die Offenheit des Quellcodes. Ich halte das so ähnlich wie Bruce Perens und die FSF (womit ich aber nicht ausdrücken will, dass der Begriff ``Freie Software`` an Lizenzen der FSF gekoppelt sein muss).
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Außerdem ist Eric Raymond sowieso ein waffentragender Hillbilly und sieht nicht halb so cool aus wie Stallman... Ein Grund mehr von "freier Software" zu sprechen anstatt von "Open Source"Leonidas hat geschrieben:Was den OS Tube-Artikel angeht: das ist eben auch ein Grund, warum ich den Begriff ``Open Source`` ungern nutze und ``Freie Software`` bevorzuge - weil sie eben die Freiheit der Software ausdrückt und nicht die Offenheit des Quellcodes.

-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Ach, aber Everybody loves Eric Raymondlunar hat geschrieben:Außerdem ist Eric Raymond sowieso ein waffentragender Hillbilly und sieht nicht halb so cool aus wie Stallman...

My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
I'm singing the free software song... *whistle*Leonidas hat geschrieben:Ach, aber Everybody loves Eric Raymondlunar hat geschrieben:Außerdem ist Eric Raymond sowieso ein waffentragender Hillbilly und sieht nicht halb so cool aus wie Stallman...

(and don't love ESR, btw)