Mit neuer php-Version dauert AJAX-Request sehr lange

Alles, was PHP betrifft, kann hier besprochen werden.

Mit neuer php-Version dauert AJAX-Request sehr lange

Postby AHoppe » 22. January 2013 08:08

Hi Forum,

gleich vorneweg, ob es tatsächlich an php liegt, kann ich nicht sagen, aber ich vermute es. Ich werde auch unten stehend berichten warum.

Zum Szenario:

Ich habe einen neuen Rechner aufgesetzt, der mir zugleich als Web-Server für ein kleines Intranet dient. Ich habe noch meinen alten Rechner, sodass ich jederzeit den "alten Stand" wiederherstellen kann. Die beiden Konfigurationen bzgl. XAMPP stehen in der Signatur.

Ich habe unter anderem eine Abfrage, die mir während der Eingabe von Zeichen in ein Textfeld in einem Formular per AJAX-Request dazu passende Datensätze aus der MySQL-Datenbank sucht und darstellt. Dazu wird der Inhalt des Textfeldes nach Änderung an ein JavaScript-Script weitergegeben, das eine php-Datei aufruft. In der php-Datei werden die Datensätze aus der MySQL-Datenbank abgefragt und als xml-Datei zurückgeliefert. Diese wird im JS-Script ausgwertet und die Daten werden dargestellt.

Mit dem alten System lief eine Beispielanfrage lt. Firebug in 0.85 s. Mit dem neuen System benötigt die selbe Abfrage über 3 Minuten... Der Client ist dabei identisch...

Wenn ich die Abfrage über phpMyAdmin (auf dem neuen System) direkt ausführen lasse, dann benötigt sie auch nur ein paar Millisekunden.

Der Haken scheint also irgendwo in der Verbindung zwischen JS und PHP zu liegen.

Hat jemand das Problem ebenfalls schonmal festgestellt und eine Lösung gefunden?

Viele Grüße

Andreas
Last edited by AHoppe on 22. January 2013 10:32, edited 2 times in total.
---
Windows 7 Business Edition 64bit, SP1
XAMPP 1.8.1
Apache 2.4.3
PHP 5.4.7
MySQL 5.5.27


Windows XP Prof. 32bit, SP3
XAMPP 1.6.4
Apache 2.2.6
PHP 5.2.4
MySQL 5.0.54-community-nt
AHoppe
 
Posts: 7
Joined: 22. January 2013 07:49
Operating System: Windows 7 Prof. 64bit

Re: Mit neuer php-Version dauert AJAX-Request sehr lange

Postby AHoppe » 22. January 2013 08:13

Gut, ich hatte eigentlich gedacht, ich hätte alles gelesen, aber mein Problem ist bereits in http://community.apachefriends.org/f/viewtopic.php?f=4&t=50971#p196204 gelöst.

EnableMMAP off
EnableSendfile off

Viele Grüße

Andreas
---
Windows 7 Business Edition 64bit, SP1
XAMPP 1.8.1
Apache 2.4.3
PHP 5.4.7
MySQL 5.5.27


Windows XP Prof. 32bit, SP3
XAMPP 1.6.4
Apache 2.2.6
PHP 5.2.4
MySQL 5.0.54-community-nt
AHoppe
 
Posts: 7
Joined: 22. January 2013 07:49
Operating System: Windows 7 Prof. 64bit

Re: Mit neuer php-Version dauert AJAX-Request sehr lange

Postby AHoppe » 22. January 2013 10:33

Zu früh gefreut, das wars doch nicht...

Viele Grüße

Andreas
---
Windows 7 Business Edition 64bit, SP1
XAMPP 1.8.1
Apache 2.4.3
PHP 5.4.7
MySQL 5.5.27


Windows XP Prof. 32bit, SP3
XAMPP 1.6.4
Apache 2.2.6
PHP 5.2.4
MySQL 5.0.54-community-nt
AHoppe
 
Posts: 7
Joined: 22. January 2013 07:49
Operating System: Windows 7 Prof. 64bit

Re: Mit neuer php-Version dauert AJAX-Request sehr lange

Postby AHoppe » 22. January 2013 11:15

So, hiermit http://community.apachefriends.org/f/viewtopic.php?f=4&t=51247#p197552 ist es besser, aber Abfragen brauchen noch immer etwa 4-5 mal so lange...

Kennt jemand noch weitere Tuning-Tipps?

Viele Grüße

Andreas
---
Windows 7 Business Edition 64bit, SP1
XAMPP 1.8.1
Apache 2.4.3
PHP 5.4.7
MySQL 5.5.27


Windows XP Prof. 32bit, SP3
XAMPP 1.6.4
Apache 2.2.6
PHP 5.2.4
MySQL 5.0.54-community-nt
AHoppe
 
Posts: 7
Joined: 22. January 2013 07:49
Operating System: Windows 7 Prof. 64bit

Re: Mit neuer php-Version dauert AJAX-Request sehr lange

Postby Altrea » 22. January 2013 12:31

Hi Andreas,

Ich habe nurnoch einen Thread, der vielleicht hilfreich sein könnte: viewtopic.php?f=16&t=51152&p=197529

mit freundlichen Grüßen,
Altrea
We don't provide any support via personal channels like PM, email, Skype, TeamViewer!

It's like porn for programmers 8)
User avatar
Altrea
AF Moderator
 
Posts: 8286
Joined: 17. August 2009 13:05
XAMPP version: several
Operating System: Windows 10 Pro x64

Re: Mit neuer php-Version dauert AJAX-Request sehr lange

Postby AHoppe » 22. January 2013 13:16

Hi Altrea,

die Änderungen habe ich bereits vorgenommen.

Das hat die Laufzeit meines Skripts immerhin von über 3 Minuten auf ca. 2 Sekunden verkürzt, was aber immer noch signifikant länger ist als vorher.

Insbesondere weil der neue Rechner nominell deutlich schneller ist, sowohl was die Platte als auch Speicher und Prozessor angeht.

Viele Grüße

Andreas
---
Windows 7 Business Edition 64bit, SP1
XAMPP 1.8.1
Apache 2.4.3
PHP 5.4.7
MySQL 5.5.27


Windows XP Prof. 32bit, SP3
XAMPP 1.6.4
Apache 2.2.6
PHP 5.2.4
MySQL 5.0.54-community-nt
AHoppe
 
Posts: 7
Joined: 22. January 2013 07:49
Operating System: Windows 7 Prof. 64bit

Re: Mit neuer php-Version dauert AJAX-Request sehr lange

Postby Nobbie » 22. January 2013 13:47

Editier mal dein Script (also das PHP Script, nicht JS) und frage ganz am Anfang und ganz am Ende den Timestamp ab und ermittele damit die reine Laufzeit. Dann haben wir wenigstens einen Anhaltspunkt, ob man innerhalb von PHP/MySQL suchen muss, oder ob es ein externes Problem (Windows?) ist.

Könntest Du den Server auch als Linux Server aufsetzen? Vielleicht ist das ja flotter.

Es kann auch TCPIP Problem in Windows sein (beim resolve oder bind), denn Windows7 macht das ganz anders als WindowsXP und insbesondere IPv6 hakt manchmal. Aber der obige Benchmark kann auf keinen Fall schaden.
Nobbie
 
Posts: 8759
Joined: 09. March 2008 13:04

Re: Mit neuer php-Version dauert AJAX-Request sehr lange

Postby AHoppe » 22. January 2013 14:27

Hi Nobbie,

ich habe jetzt zwei Varianten ausprobiert (verschiedene Anfragen an die DB).

Variante 1: Laufzeit php laut zweimaliger time-Abfrage 3 s; Firebug meldet 2,51 s
Variante 2: Laufzeit php laut zweimaliger time-Abfrage 2 s; Firebug meldet 1,86 s

Es scheint sich also das php-Skript, in dem auch die MySQL-Anfragen laufen, Zeit zu gönnen und zwar gerundet fast die gesamte Abfragezeit.

Auf der alten Maschine laufen Variante 1 in 600 ms und Variante 2 in 480 ms.

Den Rechner kann ich leider nicht als Linux-Rechner betreibe (auch wenn ich das gerne würde), weil noch eine Software darauf laufen muss, die nicht Linux-fähig ist...

Vielleicht durchforste ich nochmal meine php.ini und gucke, ob ich da was optimieren kann.

Viele Grüße

Andreas
---
Windows 7 Business Edition 64bit, SP1
XAMPP 1.8.1
Apache 2.4.3
PHP 5.4.7
MySQL 5.5.27


Windows XP Prof. 32bit, SP3
XAMPP 1.6.4
Apache 2.2.6
PHP 5.2.4
MySQL 5.0.54-community-nt
AHoppe
 
Posts: 7
Joined: 22. January 2013 07:49
Operating System: Windows 7 Prof. 64bit

Re: Mit neuer php-Version dauert AJAX-Request sehr lange

Postby Nobbie » 22. January 2013 18:09

Wie hast Du denn die Datenbanken übertragen? Ich habe es schon erlebt, dass die Daten zwar angekommen sind, aber nicht die Indizes. (Nur mal eine Idee). Dann können Abfragen recht lange dauern, die sonst sehr schnell gehen.

Ansonsten kannst Du ja mal die ganzen SQL Aufrufe mit Timestamps einrahmen. Und rufe nicht time() auf, das ist viel zu grob, nimm microtime(), da hast Du tausendstel Sekunden. Lies Dir mal http://de1.php.net/manual/de/function.microtime.php durch, da ist auch bei den Kommentaren direkt ein einfaches Codebeispiel, wie man das in einem gut lesbaren Format ausgeben kann.

Dann hast Du genaue Anhaltspunkte, wo es hängt.
Nobbie
 
Posts: 8759
Joined: 09. March 2008 13:04

Re: Mit neuer php-Version dauert AJAX-Request sehr lange

Postby Nobbie » 22. January 2013 18:22

Ach, jetzt habe ich noch eine ganz dicke Idee:

ein neues Xampp kommt mit einer my.ini, die für "small" Systeme ausgelegt ist (horrend kleine Pufferwerte), die u.a. nur 64MB RAM haben. Das ist auch eine Bremse allererster Kajüte...

Nimm da mal mindestens die "large" Variante aus dem Verzeichnis c:/xampp/mysql (bzw. die Werte daraus, wirst Du schon sehen, wo das eingebaut werden muss), es gibt da ja ein paar Muster-My.ini Dateien. Das wird auch viel ausmachen, wenn es daran liegt (habe ich aber schon oft gelesen). Und MySQL neu starten danach.

Die "wirksame" my.ini liegt übrigens in c:/xampp/mysql/bin
Nobbie
 
Posts: 8759
Joined: 09. March 2008 13:04

Re: Mit neuer php-Version dauert AJAX-Request sehr lange

Postby AHoppe » 22. January 2013 19:21

Hi,

das Übertragen der DBs (waren mehrere) hat recht gut gekleppt. Die Indizes hatte ich überprüft.

microtime() mache ich mal.

Die my.ini-Variante mache ich mal morgen, wenn ich wieder am entsprechenden Rechner bin. Aber die DB, um die es geht ist nicht so groß... 1 DB -> 30 Tabellen -> davon werden 5 abgefragt mit je ca. 200 Einträgen und 15 Feldern. Eigentlich harmlos, aber einen Versuch ist es auf jeden Fall wert.

Meine einzelnen Änderungen an der php.ini waren nicht zielführend, das habe ich schon ausprobiert.

Viele Grüße

Andreas
---
Windows 7 Business Edition 64bit, SP1
XAMPP 1.8.1
Apache 2.4.3
PHP 5.4.7
MySQL 5.5.27


Windows XP Prof. 32bit, SP3
XAMPP 1.6.4
Apache 2.2.6
PHP 5.2.4
MySQL 5.0.54-community-nt
AHoppe
 
Posts: 7
Joined: 22. January 2013 07:49
Operating System: Windows 7 Prof. 64bit


Return to PHP

Who is online

Users browsing this forum: No registered users and 3 guests