PHP Script Compiler - bináris fájlként tárolás?
Egy lehet örült ötlet, de elgondolkodtam, hogy a PHP egy script nyelv, így futtatása nem túl hatékony.
Hasonló opción gondoltam mint az opcache, csak annyi, hogy a php fájlok szerver oldalon lennének binárisként tárolva, használva.
Van -e erre valamilyen mód!?
Amellett, hogy amit írsz, az igaz, azért tegyük hozzá, hogy a sokmagos, GHz-es gépek korában már nem igazán nevezhető hátránynak egy értelmezett nyelv használata, főleg, hogy a PHP-szkriptek jellemzően nem végeznek hosszú és komoly számítási műveleteket, hanem a bemeneti paraméterek függvényében előállítanak egy weboldalt.
Lehetőség van természetesen natív binárisokat használni webes környezetben (már amennyiben a szerver a tiéd, és nem csak tárhelyet bérelsz, mert a tárhelyszolgáltatók ezt nem preferálják), CGI a technika neve, és igazából bármilyen technika alkalmas dinamikus weboldalak készítésére, ami képes a szabványos kimenetre írni. Írtam én már Pascalban és C-ben is weboldalt, sőt, demonstrációs céllal még Assemblyben is, de őszintén: hacsak nem vagy az adott nyelv elkötelezett zsenije, akkor vajmi keveset nyersz vele. A PHP meg eleve értelmezett nyelvnek lett tervezve, persze, végső soron ez is gépi kódként hajtódik végre, szóval egyáltalán nem lehetetlen natív binárissá alakítani (van is rá pár próbálkozás, ha rákeresel a "PHP compiler" kifejezésre), de ez távolról sem lesz optimális. Egy valamire való szervert pedig nem terhel meg egy PHP-programocska lefuttatása.
A lehetőség adott arra, amit meg akarsz valósítani, csak a nyereség jóval kisebb lesz, mint a macera.
Persze írhatom más nyelven is...
A kérdés abból jött, hogy ott az opcache funkció a PHP -ba.
Ez binárisként tárolja a memóriába az újra felhasználásig.
Tehát egyszer átfordítja a scriptet, és utána azt használja...
Általában a másodperc ezred része se egy fájlnál, és maga a futási ideje jóval több. (ott is sokszor van mit optimalizálni.)
Csak egy elgondolás, hogy ennyivel is gyorsítsuk a folyamatot.
Pl. az is brutális arányba gyorsítja, ha egy már futó WebSocket -től töltjük be a további adatok. Pár század másodpercre lehet csökkenteni azt ami negyed másodpercbe is telne.
Itt ugye már az segít, hogy kapcsolat felépült, a teljes FW PHP scriptek binárisként a memóriába töltve...
Az extra szépsége, hogy 2 irányú, tehát nem csak kliens indíthat kérést szerver irányába, hanem szerver irányából is érkezhet információ külön lekérés nélkül.
"Ez binárisként tárolja a memóriába az újra felhasználásig."
Tévedsz. Nem tárolja binárisként.
#6: Google első találata az "OpCache" kifejezésre:
"Az OpCache a weboldal első betöltésekor a PHP programkódból a szerver által gyorsabban futtatható gépi kódot fordít, ún opcode-ot, amelyet aztán a memóriában tárol el. Ismételt betöltés esetén a PHP futtatása helyett ezt a gépi kódot futtatja, ezáltal jelentősen megnövelve az oldal betöltési idejét."
De a php.net oldalon is olvashatsz róla:
Ne nevettesd már ki magad.
Ha valaki azt írja, hogy a föld kocka alakú, akkor azt is elhiszed?
A gépi kód és az opkód eleve, két különböző dolog. Aki ezt az általad citált hülyeséget írta, az egy tudatlan barom.
Gépi kódot maga a processzor futtat. A php -ha jól tudom- egy zend vm nevű virtuális gépre fordítja a scriptet, ami így valószinűleg bytecode lesz. Ezt képes futtatni a zend.
Egyébként, a nyűgödre a legjobb megoldás valóban az, hogy c-ben, pascal-ban, vagy más, natív binárisra fordítani képes compilerrel bíró nyelven megírd azt amit jelenleg php-ban futtatsz.
Azt érdemes lenne felismerni, hogy webes vonalon a php általában olyan sok mindent nem csinál, mindössze text I/O a feladata különféle bemenő paraméterek alapján, esetleg némi adatbázis kezelés. Ezt c-vel, pascallal nagyon fel lehet turbózni. A php futásidejének akár öt vagy három százalékára is redukálható a cpu igény, a memóriahasználat szintén a php által igényeltnek töredéke.
Azt is érdemes tudnod, hogy az általad hivatkozott bytecode is csak addig marad ujrahasználható, amíg a körülmények nem változnak, a natív c vagy pascal kód viszont mindig nagyon gyors.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!