Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Glupie/smieszne Bledy Oo W Php5
e-Gandalf
post
Post #1





Grupa: Przyjaciele php.pl
Postów: 195
Pomógł: 0
Dołączył: 7.07.2003
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


przyklady:

1)

  1. <?php
  2.  
  3. class Foo {
  4. }
  5.  
  6. function x(Foo $e) {
  7. }
  8.  
  9. $l = new Foo();
  10.  
  11. x((int)$l);
  12.  
  13. ?>


2)

  1. <?php
  2.  
  3. class Foo {
  4. }
  5.  
  6. function x(Foo $e) {
  7. }
  8.  
  9. x(null);
  10.  
  11. ?>


macie inne? (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Krolik
post
Post #2





Grupa: Zarejestrowani
Postów: 53
Pomógł: 0
Dołączył: 16.11.2004

Ostrzeżenie: (0%)
-----


Hmm... zle sie wyrazilem. Chodzilo mi o to, ze samo przekazywanie duzych zmiennych przez referencje jest na ogol do kilkuset razy wolniejsze niz przez wartosc (zalezy od wielkosci obiektow). Odwrotnie niz w C, C++, Pascalu czy Basicu, gdzie referencje sa zawsze szybsze o ile tylko obiekt jest wiekszy niz ok. 8B.

Bez urazy, ale Twoj test mierzy nie tylko czas przekazania parametru, ale rowniez jego modyfikacji. Poniewaz modyfikujesz wszystkie elementy tablicy, to czas tej modyfikacji jest porownywalny z czasem kopiowania calej tablicy (przekazywanie przez wartosc). Stad masz roznice tylko nieco ponad 30%. Zmodyfikuj w funkcji 1 element tablicy to wtedy zobaczysz roznice.

A nawet przy modyfikacji 1000 elementow wersja z referencjami powinna dzialac prawie 2 razy szybciej, no bo nie trzeba kopiowac tablicy (tak na zdrowy rozsadek). Moim zdaniem jest to troche dziwne... Poza tym w jednym z oficjalnych bugow w php 5 jest pokazany dosyc podobny kod, ale ze stringami i tam roznica byla kilkaset razy w czasie wykonania calego skryptu. Gosc przekazywal do funkcji dlugi lancuch tekstu, z ktorego nastepnie zwracal pierwsze 5 znakow jako wynik. Inni tez to potwierdzili.

BTW: 1000 prostych operacji dodawania x 1000 to tylko 1000000. Na jakim kompie testowales, ze zajelo to az pare sekund?

W C++ to samo (na Celeronie 2.4):
z referencjami: 0.009 s
bez referencji: 0.023 s

(musialem zwiekszyc liczbe wywolan w glownej petli 100000 zeby moc jakos w miare dokladnie zmierzyc)
W Javie jest podobnie. To jakby ponad 200 razy szybciej. (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

I o jakiej wydajnosci php 5 my tu mowimy?
Go to the top of the page
+Quote Post

Posty w temacie
- e-Gandalf   Glupie/smieszne Bledy Oo W Php5   7.09.2004, 11:34:45
- - hawk   Zapomniałeś o: [PHP] pobierz, plaintext <?php...   7.09.2004, 17:45:31
- - chfast   Cytat(e-Gandalf @ 2004-09-07 11:34:45)2)...   11.09.2004, 15:51:02
- - e-Gandalf   1) A moze to, ze w kazdym jezyku swiata kazdy niep...   11.09.2004, 18:35:55
- - chfast   Niestety niewiele z tego rozumiem bo nie mam pojęc...   11.09.2004, 19:39:34
- - hawk   Pomijając derefencowanie chodzi o to że: 1) W ka...   11.09.2004, 22:06:05
- - e-Gandalf   Hawk: no dokladnie o to mi chodzilo   13.09.2004, 08:50:00
- - Dabroz   Szkoda że nie ma typów danych w php. Można by twor...   14.09.2004, 22:15:01
- - e-Gandalf   jedziemy dalej: [PHP] pobierz, plaintext <?php...   15.09.2004, 15:42:40
- - hawk   Komedii ciąg dalszy: [PHP] pobierz, plaintext ...   17.09.2004, 21:19:17
- - e-Gandalf   poprawcie jesli sie myle, ale to chyba tez blad: ...   20.09.2004, 15:34:21
- - hawk   Dlaczego żenada? Mechanizm jest chyba zrobiony tak...   22.09.2004, 10:04:07
- - e-Gandalf   No, tu niestety ponosimy koszty "kompatybilno...   22.09.2004, 12:17:10
- - hawk   Typowy problem języków proceduralno-obiektowych. T...   22.09.2004, 12:24:36
- - e-Gandalf   Cytat(serafin @ 2004-09-22 13:28:33)Skoro ten...   23.09.2004, 00:01:45
- - hawk   Co prowadzi nas do wniosku że każdą funkcję powinn...   23.09.2004, 09:41:58
- - netzah   Cytat(e-Gandalf @ 2004-09-15 16:42:40)[P...   29.09.2004, 15:01:31
- - e-Gandalf   Poczekaj, poczekaj. Jesli bym chcial zablokowac mi...   30.09.2004, 20:18:27
- - hawk   1) Taki swodobny dostęp do zmiennych jest rzeczą n...   30.09.2004, 22:22:55
- - netzah   Cytat(e-Gandalf @ 2004-09-30 21:18:27)Po...   1.10.2004, 07:47:22
- - e-Gandalf   hawk: nie zgodze sie, ze nie ma RMI ;>>>...   3.10.2004, 02:40:22
- - netzah   Cytat(e-Gandalf @ 2004-10-03 03:40:22)ha...   5.10.2004, 14:26:30
- - e-Gandalf   Niestety zbyt wiele na razie nie moge zdradzac. Ge...   6.10.2004, 15:10:45
- - Lukasz Luczak   Może nie trafiony będzie to temat. Ale mnie rozwal...   10.10.2004, 19:33:08
- - Seth   Cytat(Lukasz Luczak @ 2004-10-10 19:33:08)Moż...   10.10.2004, 20:24:12
- - Lukasz Luczak   Ok Seth - źle się wyraziłem wybacz   10.10.2004, 22:10:46
- - netzah   Cytat(Seth @ 2004-10-10 21:24:12)(...) nijak ...   11.10.2004, 07:53:29
- - hawk   Kolejna porcja głupoty: PHP5 ma wreszcie dobrą, o...   26.10.2004, 09:05:08
- - DeyV   Cytat(serafin @ 2004-09-22 10:40:49)Gdyby tyl...   1.11.2004, 00:51:50
- - bregovic   DeyV: WOW! Dzięki za tego tips'a - to jest...   1.11.2004, 09:15:37
- - hawk   Co ma jedną wadę: pozbywamy się całkowicie error h...   1.11.2004, 12:13:10
- - DeyV   Cytat("Krolik")Z glupich bledow: - Przek...   16.11.2004, 22:05:46
- - Krolik   Hmm... zle sie wyrazilem. Chodzilo mi o to, ze sam...   17.11.2004, 08:49:38
- - hawk   @Krolik: poszukaj sobie wątku o tym, jak w php dzi...   17.11.2004, 09:19:53
- - DeyV   krolik - mowisz i masz. Oto przykład testu opisan...   17.11.2004, 10:50:17
- - Krolik   Dobrze, dobrze, moze to poprawili. Co do przekaz...   17.11.2004, 12:57:28
- - hawk   Ale oczywiście testowałeś tą Javę przez JSP?   17.11.2004, 17:13:33
- - Krolik   Nie, przez serwlet (jako kontener uzylem Jbossa, b...   18.11.2004, 09:00:52
- - bela_666   Cytat(Zyx)Otóż od php 4 interpretacjia kodu php sk...   18.11.2004, 21:16:34
- - Krolik   No i co z tego? I tak za kazdym razem skrypt musi ...   20.11.2004, 10:13:06
- - hawk   Zaraz, o jakiej kompilacji mówisz? Kod Javy kompil...   22.11.2004, 22:36:20
- - Krolik   Miałem na myśli bez akceleratora. Czy sa jakies a...   23.11.2004, 09:37:31
- - hawk   Czy jest jakiś kontener serwletów, który można zai...   23.11.2004, 09:43:53
- - hwao   Proszę wrócić do tematu przewodniego... Inaczej bę...   23.11.2004, 09:58:18


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 2.10.2025 - 17:27