Hypercell ein ] Hypercell aus ] Zeige Navigation ] Verstecke Navigation ]
c++.de  
   

Die mobilen Seiten von c++.de:
http://m.c-plusplus.de
Infos hier [BETA]

  
c++.de :: Webzeugs ::  PHP - Breitensuche  
Gehen Sie zu Seite Zurück  1, 2, 3, 4, 5, 6  Weiter
  Zeige alle Beiträge auf einer Seite
Auf Beitrag antworten
Autor Nachricht
Zeus
Mitglied

Benutzerprofil
Anmeldungsdatum: 25.09.2003
Beiträge: 2839
Beitrag Zeus Mitglied 08:41:31 25.04.2012   Titel:              Zitieren

00Albert schrieb:
Das ganze Gebilde meines Testsenarios hat 300 Knoten und mindestens 900 Kanten, hab noch nicht alles aus der Grafik abgeschrieben, wobei das alles ungerichtet ist.


Selbst für PHP sollte es Kleinkram sein.
314159265358979
Mitglied

Benutzerprofil
Anmeldungsdatum: 09.03.2010
Beiträge: 4658
Beitrag 314159265358979 Mitglied 09:24:06 25.04.2012   Titel:              Zitieren

Shade Of Mine schrieb:
PHP ist schon recht schnell, das ist trivial mit C++ nicht einholbar.

Ein rekursiver Fibonacci reicht bereits aus.

00Albert schrieb:
Naja c++ bekomm ich aber nicht in den browser :) oder ich wüsste nicht wie.

Entweder aus PHP aufrufen, oder über CGI.
Shade Of Mine
Moderator

Benutzerprofil
Anmeldungsdatum: 04.05.2001
Beiträge: 18944
Beitrag Shade Of Mine Moderator 12:52:13 25.04.2012   Titel:              Zitieren

314159265358979 schrieb:
Shade Of Mine schrieb:
PHP ist schon recht schnell, das ist trivial mit C++ nicht einholbar.

Ein rekursiver Fibonacci reicht bereits aus.

Nope, da bin ich dank Caching mit PHP schneller - weil ich mehr concurrente Anfragen beantworten kann.

@triptop:
Nope, im Web geht es um Skalierbarkeit. Ein Request interessiert nicht. Wenn der Request in einer Zeit abgearbeitet werden kann die OK ist, dann passt das. Die Frage ist: wie schaut es mit 1000 Requests pro Sekunde aus oder 100000?

Das ist die relevante Frage. Ein Request ist uninteressant.

@00Albert:
Wie Zeugs schreibt, das ist Kleinkram.

Der richtige Ansatz zur Optimierung ist eher: wie kann ich diese Struktur in der Datenbank abbilden. Und wie kann ich dann darauf die notwendigen Operationen machen, so dass ich in PHP garnicht erst irgendwas tun muss.

_________________
A language that doesn't affect the way you think about programming is not worth knowing.
triptop
Unregistrierter




Beitrag triptop Unregistrierter 13:16:42 25.04.2012   Titel:              Zitieren

Shade Of Mine schrieb:
@triptop:
Nope, im Web geht es um Skalierbarkeit. Ein Request interessiert nicht. Wenn der Request in einer Zeit abgearbeitet werden kann die OK ist, dann passt das. Die Frage ist: wie schaut es mit 1000 Requests pro Sekunde aus oder 100000?

Das ist die relevante Frage. Ein Request ist uninteressant.
willst du mich ärgern? wenn eine php version 10 anfragen pro sek. schafft, aber eine c version 1000 pro sek., wie macht dann ein vor- oder nachgeschalteter loadbalancer php schneller :confused:

klar, sind 100 php instanzen dann gleich schnell wie eine c instanz aber doch nicht wie 100 c instanzen!
triptop
Unregistrierter




Beitrag triptop Unregistrierter 13:24:05 25.04.2012   Titel:              Zitieren

und nochmal, wie pi schon richtig behauptet hat, wir reden hier leicht um faktor 10 und manchmal 100! das bedeutet, dass du 100 mal mehr strom verbrauchst und 100 mal mehr schrott produzierst, weil solche it-systeme idr. iwann unwirtschaftlich werden, wenn sie vorher nicht ausgefallen sind...
Michael E.
Mitglied

Benutzerprofil
Anmeldungsdatum: 25.10.2003
Beiträge: 5712
Beitrag Michael E. Mitglied 14:34:05 25.04.2012   Titel:              Zitieren

Shade Of Mine schrieb:
Du hast O(N) speicherkomplexitaet wenn ich das richtig sehe.

Eine Adjazenzmatrix hat die Größe n². Macht bei 300 Knoten 90000 Einträge. Viel billiger kommt man hier weg, wenn man eine Adjazenzliste benutzt, die nur 900 1800 Einträge benutzt. Dann läuft der Algorithmus nebenbei auch noch deutlich schneller.

_________________
Your password must be at least 18770 characters and cannot repeat any of your previous 30689 passwords. Please type a different password. Type a password that meets these requirements in both text boxes. (http://support.microsoft.com/kb/276304/en-us/)


Zuletzt bearbeitet von Michael E. am 14:35:37 25.04.2012, insgesamt 1-mal bearbeitet
Shade Of Mine
Moderator

Benutzerprofil
Anmeldungsdatum: 04.05.2001
Beiträge: 18944
Beitrag Shade Of Mine Moderator 17:34:02 25.04.2012   Titel:              Zitieren

triptop schrieb:
willst du mich ärgern? wenn eine php version 10 anfragen pro sek. schafft, aber eine c version 1000 pro sek., wie macht dann ein vor- oder nachgeschalteter loadbalancer php schneller :confused:

Und wenn PHP 1000 pro Sek schafft und C nur 10 dann ist PHP schneller.

Was ist der Sinn von so einem Schwachfug?

Zitat:
klar, sind 100 php instanzen dann gleich schnell wie eine c instanz aber doch nicht wie 100 c instanzen!

Du hast nur 1 PHP Instanz aber N C++ Instanzen. DAS ist der Punkt. C++ ist nicht trivial Skalierbar auf den Server zu bekommen. CGI, FastCGI, etc. ist alles Schrott. Du brauchst einen App Server. Da gibts nicht viele die was bringen. Und selbst dann gewinne ich idR durch andere Methoden mehr Performance.

Die Sprache ist idR komplett uninteressant.

@Michael E.:
Und das müsste sich eigentlich in einer Tabellenstruktur abspeichern lassen. Damit kann ich direkt über SQL darauf suchen.

Und alles was ich in der DB halten kann, ist halt enorm schnell und skaliert wie sau :)

_________________
A language that doesn't affect the way you think about programming is not worth knowing.


Zuletzt bearbeitet von Shade Of Mine am 17:39:33 25.04.2012, insgesamt 1-mal bearbeitet
triptop
Unregistrierter




Beitrag triptop Unregistrierter 17:51:36 25.04.2012   Titel:              Zitieren

Shade Of Mine schrieb:
Und alles was ich in der DB halten kann, ist halt enorm schnell und skaliert wie sau :)
okay, ich denke wir lassen das jetzt. ich geh jetzt bischen spazieren und dann gibts krieg in der champions league :leak:
314159265358979
Mitglied

Benutzerprofil
Anmeldungsdatum: 09.03.2010
Beiträge: 4658
Beitrag 314159265358979 Mitglied 20:31:01 25.04.2012   Titel:              Zitieren

Shade Of Mine schrieb:
Und wenn PHP 1000 pro Sek schafft und C nur 10 dann ist PHP schneller.

Was ist der Sinn von so einem Schwachfug?

http://i3.kym-cdn.com/photos/images/newsfeed/000/218/902/this%20is%20a%20viking%20biker%20arguement%20invalid.jpg
Ehrlich, so viel Mist hab ich schon ewig nicht mehr gelesen, musste fast lachen.

Aber extra für dich, ein kleines Benchmark, damit du einsiehst, was für fatalen Mist du von dir gibst. Gegeben seien die beiden folgenden Programme:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
<?php
    function fib($n)
    {
        return $n > 1 ? fib($n - 1) + fib($n - 2) : 1;
    }
 
    $begin = microtime(true);
    echo fib(35);
    $end = microtime(true);
 
    echo "<br />".($end-$begin);
?>

C++:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
#include <ctime>
 
unsigned fib(unsigned n)
{
    return n > 1 ? fib(n - 1) + fib(n - 2) : 1;
}
 
int main()
{
    auto begin = std::clock();
    std::cout << fib(35);
    auto end = std::clock();
 
    std::cout << "<br />" << (end - begin) / static_cast<double>(CLOCKS_PER_SEC);
}

Ausgabe PHP:
Zitat:
14930352
16.2973461151

Ausgabe C++:
Zitat:
14930352
0.0403


Ohne Worte...
Zeus
Mitglied

Benutzerprofil
Anmeldungsdatum: 25.09.2003
Beiträge: 2839
Beitrag Zeus Mitglied 21:20:59 25.04.2012   Titel:              Zitieren

Mein Gott, bist du schlecht in deine Haut will ich nicht sein. Ich bin mit JavaScript viel schneller :cool:

Code:
1
2
3
4
5
6
7
8
function fib(n)
{
    return n > 1 ? fib(n-1) + fib(n-2) : 1;
}
var start = new Date();
console.log(fib(35));
var end = new Date();
console.log((end - start) / 1000);


Zitat:
14930352
0.288
c++.de :: Webzeugs ::  PHP - Breitensuche  
Gehen Sie zu Seite Zurück  1, 2, 3, 4, 5, 6  Weiter
Auf Beitrag antworten

Zeige alle Beiträge auf einer Seite




Nächstes Thema anzeigen
Vorheriges Thema anzeigen
Sie können Beiträge in dieses Forum schreiben.
Sie können auf Beiträge in diesem Forum antworten.
Sie können Ihre Beiträge in diesem Forum nicht bearbeiten.
Sie können Ihre Beiträge in diesem Forum nicht löschen.
Sie können an Umfragen in diesem Forum nicht mitmachen.

Powered by phpBB © 2001, 2002 phpBB Group :: FI Theme

c++.de ist Teilnehmer des Partnerprogramms von Amazon Europe S.à.r.l. und Partner des Werbeprogramms, das zur Bereitstellung eines Mediums für Websites konzipiert wurde, mittels dessen durch die Platzierung von Werbeanzeigen und Links zu amazon.de Werbekostenerstattung verdient werden kann.

Die Vervielfältigung der auf den Seiten www.c-plusplus.de, www.c-plusplus.info und www.c-plusplus.net enthaltenen Informationen ohne eine schriftliche Genehmigung des Seitenbetreibers ist untersagt (vgl. §4 Urheberrechtsgesetz). Die Nutzung und Änderung der vorgestellten Strukturen und Verfahren in privaten und kommerziellen Softwareanwendungen ist ausdrücklich erlaubt, soweit keine Rechte Dritter verletzt werden. Der Seitenbetreiber übernimmt keine Gewähr für die Funktion einzelner Beiträge oder Programmfragmente, insbesondere übernimmt er keine Haftung für eventuelle aus dem Gebrauch entstehenden Folgeschäden.