Autor Zpráva
PHP_little
Profil *
Ahoj, zajímalo by mě, co je lepší respektive rychlejší.......

Konstanty nebo promnné?

Mám delší řetezce, které se nebudou měnit a nevím, zda je lepší je hodit do promenne nebo nebo použít define.

díky
Mastodont
Profil
No když se nebudou měnit, tak na to jsou konstanty. A rychlost neřeš.
php
Profil *
Taky bych se asi přiklonil ke konstantě, ale doporučit ti to nemůžu, v budoucnu se může stát, že najednou jednu z konstant budeš potřebovat při nějakým rozšíření skriptu měnit a pak jí budeš muset přepisovat v celém projektu na proměnnou, chce to prvně dobře promyslet, ale jsou to jen moje spekulace z důvodů příliš obecný otázky, a co se týče rychlosti, asi bych řek že konstanta bude rychlejší, protože jí nadefinuješ a pak už máš možnost jí jen číst, kdyžto u proměnný musíš kontrolovat ještě co s ní chceš dělat (měnit, číst, zrušit, když jí chci změnit tak pak zas musí PHP zjišťovat jak, atd.), ale ruku do ohně zato nedám :)
Giga
Profil *
Z princípu by som povedal, že nebude rozdiel v rýchlosti pri čítaní z pamäte pre premennú a pre konštantu. Aj jedno aj druhé musí byť v pamäti reprezentované v podstate rovnako.
Rozdiel by mohol byť vo veľkosti alokovanej pamäte, kedy pre premennú bude alokované viacej miesta - podľa rozsahu premennej - ako pre konštantu.
Joker
Profil
Další dotaz na rychlost základních jazykových konstrukcí. Nedávno tu byly operátory == a ===, teď zase proměnné a konstanty.

K čemu to je dobré? Přece proměnné a konstanty nelze libovolně zaměňovat (byť tedy se lze obejít bez konstant) a ani by to nezpůsobilo měřitelný rozdíl v rychlosti skriptu.
DoubleThink
Profil *
A včera pak switch versus if.

Je fascinující, jak se začátečníci strachují o rychlost základních jazykových konstrukcí. Je to jako měřit, o kolik se zvýší hladina moře, když do něj vlezu.
php
Profil *
až budeš programovat vysokozátěžové webové aplikace tak pak zjistíš, že každá tisícina se hodí...
Lamicz
Profil
php: sry, ale vykonove kriticke veci se u normalnich lidi pisou napr. v C (v necem kompilovanem...), ne v PHP (i na webech)
php
Profil *
Tam pak ovšem nastává problém s bezpečností, protože musíš mít povolený active-x a když se ti jedná o hodně citlivý data, tak to není zrovna úplně šťastný řešení a ne každá firma si může dovolit tahat přes půl Evropy vlastní síť. Moje zkušenosti jsou bohužel trochu jiný než ty vaše.
DoubleThink
Profil *
php:
Tam pak ovšem nastává problém s bezpečností, protože musíš mít povolený active-x
A pročpak? Jádra webových aplikací s velkou zátěží se v céčku (a ekvivalentech) píšou běžně. Shell pak může tvořit například (třeba předkompilované) PHP. Zhruba takto funguje například Facebook.

Moje zkušenosti jsou bohužel trochu jiný než ty vaše.
Mám dojem, že máš jen plnou hubu keců a zkušenosti nulové.
FrantišekHliva
Profil *
php čo s tým má activeX? activeX je clientside technológia, PHP serverside. miešaš hrušky s jablkami. kľudne môžeš serverovú časť aplikácie písať aj v C++ skompilovať na binárku a tá potom beží na strane servera, ku klientovy sa posiela HTML + CSS + JS
Joker
Profil
DoubleThink:
Je to jako měřit, o kolik se zvýší hladina moře, když do něj vlezu.
Velmi mi to připomíná lidi schopné si z auta vyhodit nářadí a lano a tankovat po 5 litrech kvůli tomu, že každý gram hmotnosti navíc zvyšuje spotřebu.
Určitě pro to (= zafixování se na jeden nepodstatný efekt rozhodnutí, které způsobí slepotu vůči o mnoho řádů důležitějším efektům) existuje nějaký odborný termín.

php:
až budeš programovat vysokozátěžové webové aplikace tak pak zjistíš, že každá tisícina se hodí...
Tenhle výrok je v aktuálním kontextu naprostá pitomost.

Proč si to myslím:
1. Člověk s takovým problémem bude buď kovaný odborník řešící naprosto výjimečnou situaci, nebo naprostý začátečník řešící hovadiny. Ti první se nepřijdou ptát sem.
2. Začátečník často řeší věci s potenciálem změnit čas skriptu o 0.0000001s kvůli tomu, že celý skript je pomalý, protože na jiném místě ztratí 3 sekundy špatně napsaným databázovým dotazem.
3. Přece jen s rychlostí skriptů mám nějaké zkušenosti a i změny s daleko větším potenciálem než tohle udělají setiny sekundy… na milion cyklů.
4. Aby nějaký efekt vůbec měl šanci se projevit, musel by skript definovat řádově alespoň tak miliardy konstant. Pokud by to skript opravdu dělal, nejspíš bude něco špatně.
DoubleThink
Profil *
Joker:
musel by skript definovat řádově alespoň tak miliardy konstant.
Doufejme, že php nepracuje na tomhle ;)
DomXXX
Profil *
btw:
http://fabien.potencier.org/article/48/the-php-ternary-operator-fast-or-not
https://github.com/fabpot/Twig/issues/380

;-)

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0