[php] application("variabele")

Pagina: 1
Acties:

  • kvdveer
  • Registratie: November 2000
  • Laatst online: 06-11-2025
bestaat er in PHP de mogelijkheid een variabele op te slaan in het geheugen, tussen verschillende pageviews in, onafhankelijk van sessies?

Ik wil namelijk een complex object op iedere pagina gebruiken.
Momenteel serializeer ik het object, en deserializeer ik het, maar dat is volgens mij erg inefficient. Als ik het zo zou kunnen maken dat het in het geheugen staat, zou het allemaal veel efficienter zijn.
Ik weet dat in ASP daar de Application varabele voor is, bestaat daar in PHP een equivalent voor?

Even voor de leuk wat stats: (pentium 133, met heeel veel andere taken (smb, ftp, nfs, http, etc...)), met een minimale objectgrootte (ongeveer 1/20 van de productiegrootte)

Genereren object: 0.721 seconden
Voorbereiden voor serializatie: 0.0012 seconde
Serializatie: 0.0312 seconde
Deserializatie: 0.0341 seconde
Gereedmaken na Deserializatie: 0.0182 seconde.

Ik moet voor en na de serializatie het een en ander doen, omdat PHP niet met recursive-references om kan gaan. Als het object in het geheugen kan blijven staan is dat probleem natuurlijk opgelost.

edit:

first post!

Localhost, sweet localhost


Verwijderd

nou, maak een ramdrive ofzo :)

er is ook een session module in apache, misschien dat je daar wat mee kunt

  • pasz
  • Registratie: Februari 2000
  • Laatst online: 16-08 23:04
Waarom gebruik je geen ouderwetste include file ?

woei!


  • kvdveer
  • Registratie: November 2000
  • Laatst online: 06-11-2025
include is eventueel ook een optie, maar vanwege de (verwachtte) grootte heb ik liever dat de hele boel niet op de schijf terecht komt. DiskIO is en blijft traag.
Een ramdrive is idd een goede optie, maar helaas is mijn hoster het daar niet mee eens denk ik...

Localhost, sweet localhost


  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 12-09 21:31

Janoz

Moderator Devschuur®

!litemod

ALs het bestand vaak opgevraagd en weggeschreven wordt blijft het sowieso wel in de cache zitten, dan heb je hetzelfde bereikt als het opslaan in het geheugen :). Verder is voor zover ik weet het niet tot nauwelijks mogelijk om vars buiten de harde schijf om te onthouden in PHP...

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


  • kvdveer
  • Registratie: November 2000
  • Laatst online: 06-11-2025
met een include (die nu trouwens nog bestwel inefficient is) heb ik er weer 10% van mijn parsetime af gekregen.
Ik heb nog een probleempje maar daar open ik een nieuwe thread voor...

Localhost, sweet localhost


  • LuCarD
  • Registratie: Januari 2000
  • Niet online

LuCarD

Certified BUFH

Misschien kan je het proberen met

http://www.php.net/manual/en/ref.shmop.php
Shmop is an easy to use set of functions that allows php to read, write, create and delete UNIX shared memory segments. The functions will not work on windows, as it does not support shared memory. To use shmop you will need to compile php with the --enable-shmop parameter in your configure line.

Note: This module is experimental. API and others are subject to be changed without notice.

In PHP 4.0.3, there functions were prefixed by shm rather than shmop.

Programmer - an organism that turns coffee into software.

Pagina: 1