Kezdőoldal » Számítástechnika » Programozás » PHP Script Compiler - bináris...

PHP Script Compiler - bináris fájlként tárolás?

Figyelt kérdé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!?



2021. febr. 16. 20:48
 1/8 anonim ***** válasza:
53%
Van hát. Írsz egy compilert és kész is.
2021. febr. 16. 20:50
Hasznos számodra ez a válasz?
 2/8 anonim ***** válasza:
53%
A php dokumenhtációja sok kérdésre rejti a választ.
2021. febr. 16. 20:53
Hasznos számodra ez a válasz?
 3/8 anonim ***** válasza:
100%
Én erre azt szoktam mondani, hogy célnak megfelelő eszközt válasszunk. Ha a te alkalmazásod ennyire teljesítménykritikus, akkor lehet, hogy nem a PHP-t kellett volna választani, hanem mondjuk a C++-t TreeFrog MVC-vel. De TALÁN még a .NET 5 is jó lehet, ha crossgen compile-t használsz.
2021. febr. 17. 00:23
Hasznos számodra ez a válasz?
 4/8 anonim ***** válasza:
100%

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.

2021. febr. 17. 01:29
Hasznos számodra ez a válasz?
 5/8 A kérdező kommentje:

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.

2021. febr. 17. 08:26
 6/8 anonim ***** válasza:
52%

"Ez binárisként tárolja a memóriába az újra felhasználásig."


Tévedsz. Nem tárolja binárisként.

2021. febr. 17. 10:22
Hasznos számodra ez a válasz?
 7/8 A kérdező kommentje:

#6: Google első találata az "OpCache" kifejezésre:

[link]

"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:

[link]

2021. febr. 17. 16:26
 8/8 anonim ***** válasza:

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.

2021. febr. 17. 18:39
Hasznos számodra ez a válasz?

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

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!