J'aimerais savoir comment stocker des données de façon permanent au serveur
http et pouvoir y accéder via php.
Je m'explique :
Supposons qu'en php la racine carrée sqrt() n'existe pas, donc je veux qu'au
démarrage du serveur http, celui ci initialise un module spécial qui calcule
toutes les racines entières de 1 à 1000000. Et ensuite, il le garde en
mémoire définitivement pour servir tous les autres scripts.
Exemple :
function initRacine() {
for ($i = 1 ; $i < 1000000 ; $i++) {
$RACINE[$i] = ma_fonction_racine_carrée($i);
}
MemRegister($RACINE, "RACINE");
}
Ensuite, dans N'IMPORTE quel script php :
test.php
<?
$RACINE = MemGet("RACINE");
echo "la racine carrée de 2 est ".$RACINE[2];
?>
J'insiste : MemRegister et MemGet ne sont pas les fonctions session_register
... car contrairement aux fonctions sessions, mes fonctions "gravent" dans
la
mémoire static (résidente en ram du serveur pour accélérer) l'array
"RACINE".
Merci
PS : la fonction "initRacine" doit forcément être écrite en C, puis intégrée
comme module à apache (par ex...) ?
ou il y a moyen de coder ça en php? (auquel cas, le démarrage automatique
serait possible?)
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Davel_x
"NTH" a écrit dans le message de news:400eeb6f$0$19271$ | Bonjour | | J'aimerais savoir comment stocker des données de façon permanent au serveur | http et pouvoir y accéder via php. | Je m'explique : | Supposons qu'en php la racine carrée sqrt() n'existe pas, donc je veux qu'au | démarrage du serveur http, celui ci initialise un module spécial qui calcule | toutes les racines entières de 1 à 1000000. Et ensuite, il le garde en | mémoire définitivement pour servir tous les autres scripts.
Pourquoi ne pas générer directement un .php qui contient pas de boucle ou de code si ce n'est la création d'une array avec les valeurs que tu veux ? (que tu auras généré avec un script si tu veux) ça évitera au serveur des calculs inutiles, tu auras toutes tes valeurs dans un fichier statique et tout devrait rouler non ?
-- **davel_x** http://www.lerpg.com
"NTH" <nospam@raslebol.fr> a écrit dans le message de
news:400eeb6f$0$19271$626a54ce@news.free.fr...
| Bonjour
|
| J'aimerais savoir comment stocker des données de façon permanent au
serveur
| http et pouvoir y accéder via php.
| Je m'explique :
| Supposons qu'en php la racine carrée sqrt() n'existe pas, donc je veux
qu'au
| démarrage du serveur http, celui ci initialise un module spécial qui
calcule
| toutes les racines entières de 1 à 1000000. Et ensuite, il le garde en
| mémoire définitivement pour servir tous les autres scripts.
Pourquoi ne pas générer directement un .php qui contient pas de boucle ou de
code si ce n'est la création d'une array avec les valeurs que tu veux ? (que
tu auras généré avec un script si tu veux)
ça évitera au serveur des calculs inutiles, tu auras toutes tes valeurs dans
un fichier statique et tout devrait rouler non ?
"NTH" a écrit dans le message de news:400eeb6f$0$19271$ | Bonjour | | J'aimerais savoir comment stocker des données de façon permanent au serveur | http et pouvoir y accéder via php. | Je m'explique : | Supposons qu'en php la racine carrée sqrt() n'existe pas, donc je veux qu'au | démarrage du serveur http, celui ci initialise un module spécial qui calcule | toutes les racines entières de 1 à 1000000. Et ensuite, il le garde en | mémoire définitivement pour servir tous les autres scripts.
Pourquoi ne pas générer directement un .php qui contient pas de boucle ou de code si ce n'est la création d'une array avec les valeurs que tu veux ? (que tu auras généré avec un script si tu veux) ça évitera au serveur des calculs inutiles, tu auras toutes tes valeurs dans un fichier statique et tout devrait rouler non ?
-- **davel_x** http://www.lerpg.com
NTH
"Davel_x" a écrit dans le message de news:40100312$0$19270$
"NTH" a écrit dans le message de news:400eeb6f$0$19271$ | Bonjour | | J'aimerais savoir comment stocker des données de façon permanent au serveur | http et pouvoir y accéder via php. | Je m'explique : | Supposons qu'en php la racine carrée sqrt() n'existe pas, donc je veux qu'au | démarrage du serveur http, celui ci initialise un module spécial qui calcule | toutes les racines entières de 1 à 1000000. Et ensuite, il le garde en | mémoire définitivement pour servir tous les autres scripts.
Pourquoi ne pas générer directement un .php qui contient pas de boucle ou de
code si ce n'est la création d'une array avec les valeurs que tu veux ? (que
tu auras généré avec un script si tu veux) ça évitera au serveur des calculs inutiles, tu auras toutes tes valeurs dans
un fichier statique et tout devrait rouler non ? Tu parles d'un code de ce type ?
$RACINE[0] = 0; $RACINE[1] = 1; $RACINE[2] = 1.4142...; $RACINE[3] = 1.7...; $RACINE[4] = 2; ... $RACINE[1000000] = 1000; etc. ? il y a 1000000 d'affectations comme ça. Tu crois qu'une affectation c'est gratuit pour la cpu? sans parler de la précompilation de 1 millions de lignes d'affectation du php... Et en plus si je veux que ce soit pseudo dynamique : genre une fois par jour ça change à minuit?
Non il me faut un mécanisme de conservation de variables en mémoire résidente. Un VRAI mécanisme, pas du bidouillage...
Merci bcp pour ta participation qd même !
"Davel_x" <davel@noospam.fr> a écrit dans le message de
news:40100312$0$19270$626a54ce@news.free.fr...
"NTH" <nospam@raslebol.fr> a écrit dans le message de
news:400eeb6f$0$19271$626a54ce@news.free.fr...
| Bonjour
|
| J'aimerais savoir comment stocker des données de façon permanent au
serveur
| http et pouvoir y accéder via php.
| Je m'explique :
| Supposons qu'en php la racine carrée sqrt() n'existe pas, donc je veux
qu'au
| démarrage du serveur http, celui ci initialise un module spécial qui
calcule
| toutes les racines entières de 1 à 1000000. Et ensuite, il le garde en
| mémoire définitivement pour servir tous les autres scripts.
Pourquoi ne pas générer directement un .php qui contient pas de boucle ou
de
code si ce n'est la création d'une array avec les valeurs que tu veux ?
(que
tu auras généré avec un script si tu veux)
ça évitera au serveur des calculs inutiles, tu auras toutes tes valeurs
dans
un fichier statique et tout devrait rouler non ?
Tu parles d'un code de ce type ?
$RACINE[0] = 0;
$RACINE[1] = 1;
$RACINE[2] = 1.4142...;
$RACINE[3] = 1.7...;
$RACINE[4] = 2;
...
$RACINE[1000000] = 1000;
etc. ?
il y a 1000000 d'affectations comme ça.
Tu crois qu'une affectation c'est gratuit pour la cpu? sans parler de la
précompilation de 1 millions de lignes d'affectation du php...
Et en plus si je veux que ce soit pseudo dynamique : genre une fois par jour
ça change à minuit?
Non il me faut un mécanisme de conservation de variables en mémoire
résidente. Un VRAI mécanisme, pas du bidouillage...
"Davel_x" a écrit dans le message de news:40100312$0$19270$
"NTH" a écrit dans le message de news:400eeb6f$0$19271$ | Bonjour | | J'aimerais savoir comment stocker des données de façon permanent au serveur | http et pouvoir y accéder via php. | Je m'explique : | Supposons qu'en php la racine carrée sqrt() n'existe pas, donc je veux qu'au | démarrage du serveur http, celui ci initialise un module spécial qui calcule | toutes les racines entières de 1 à 1000000. Et ensuite, il le garde en | mémoire définitivement pour servir tous les autres scripts.
Pourquoi ne pas générer directement un .php qui contient pas de boucle ou de
code si ce n'est la création d'une array avec les valeurs que tu veux ? (que
tu auras généré avec un script si tu veux) ça évitera au serveur des calculs inutiles, tu auras toutes tes valeurs dans
un fichier statique et tout devrait rouler non ? Tu parles d'un code de ce type ?
$RACINE[0] = 0; $RACINE[1] = 1; $RACINE[2] = 1.4142...; $RACINE[3] = 1.7...; $RACINE[4] = 2; ... $RACINE[1000000] = 1000; etc. ? il y a 1000000 d'affectations comme ça. Tu crois qu'une affectation c'est gratuit pour la cpu? sans parler de la précompilation de 1 millions de lignes d'affectation du php... Et en plus si je veux que ce soit pseudo dynamique : genre une fois par jour ça change à minuit?
Non il me faut un mécanisme de conservation de variables en mémoire résidente. Un VRAI mécanisme, pas du bidouillage...
Merci bcp pour ta participation qd même !
Harry Cover
On 23 Jan 2004 09:48:49 GMT, NTH wrote:
Non il me faut un mécanisme de conservation de variables en mémoire résidente. Un VRAI mécanisme, pas du bidouillage...
Et stocker tout ca dans une base QSL (je propose, hein ;) ) Parce stocker un tableau dans un fichier, c'est moyen... En SQL ca risque d'aller un peu plus vite Et pas besoin de compiler tout le tableau en php
On 23 Jan 2004 09:48:49 GMT, NTH <nospam@raslebol.fr> wrote:
Non il me faut un mécanisme de conservation de variables en mémoire
résidente. Un VRAI mécanisme, pas du bidouillage...
Et stocker tout ca dans une base QSL (je propose, hein ;) )
Parce stocker un tableau dans un fichier, c'est moyen...
En SQL ca risque d'aller un peu plus vite
Et pas besoin de compiler tout le tableau en php
Non il me faut un mécanisme de conservation de variables en mémoire résidente. Un VRAI mécanisme, pas du bidouillage...
Et stocker tout ca dans une base QSL (je propose, hein ;) ) Parce stocker un tableau dans un fichier, c'est moyen... En SQL ca risque d'aller un peu plus vite Et pas besoin de compiler tout le tableau en php
Johann Dantant
"NTH" a écrit dans le message de news:400eeb6f$0$19271$
Bonjour
J'aimerais savoir comment stocker des données de façon permanent au serveur
http et pouvoir y accéder via php.
Je comprends à peu près ton besoin mais je pense que ce n'est pas une bonne approche de l'envisager en "pur PHP". L'environnement PHP n'existe à la base que dans le contexte du requête client du serveur Web. Envisager une allocation de mémoire partagée et son maintien pendant toute la "durée de vie" du serveur n'est donc pas un problème spécifique PHP mais un besoin d'utiliser les mécanismes intrinsèques de l'OS (et plus précisément, les mécanismes intrinsèques de l'OS autorisés dans l'environnement du serveur Web, ce qui peut être très restrictif selon la configuration).
Donc, pour apporter une réponse concrête, je séparerais le problème en 2 sous-problèmes : 1) allouer, initialiser et maintenir les données en mémoire, c'est a priori le rôle d'un programme "permanent" (service Windows ou démon Unix). 2) accéder à ces données depuis le script PHP lancé par le serveur Web.
A priori sur un système UNIX conforme Systeme V tu peux allouer un segment de mémoire partagée par le programme (1), y accéder dans le script PHP (2) par shm_attach. Pour que dans (2) shm_get_var puisse directement retrouver les variables dans la mémoire partagée, il faut que (1) les ait écrit conformément à ce que fait ou ferait shm_put_var (sérialisation conforme PHP).
Sur un système Windows et pour la partie PHP, tu devras te tourner vers des fonctions spécifiques (Win32 API ou .NET) à instancier à la main pour accéder aux objets mémoires partagés de l'OS...
Il va sans dire que ton script devient fortement dépendant de l'OS et surtout ne tournera que sur une machine dédiée que tu maîtrises...
Une solution indépendante de l'OS serait plutôt de concevoir (1) comme un serveur TCP, et d'utiliser les sockets en PHP pour implémenter en (2) un mécanisme de type requête / réponse.
Bonne journée sur le parc...
-- J.D. LG> qui pourrait me renseigner ou je pourrais trouver un site web avec LG> des liste de noms pour envoi de mailing NP> Demande à , les listes de noms, ca les connaît.. -+- LG In Guide du Neuneu d'Usenet : Neuneu ne doute de rien -+-
"NTH" <nospam@raslebol.fr> a écrit dans le message de
news:400eeb6f$0$19271$626a54ce@news.free.fr...
Bonjour
J'aimerais savoir comment stocker des données de façon permanent au
serveur
http et pouvoir y accéder via php.
Je comprends à peu près ton besoin mais je pense que ce n'est pas une bonne
approche de l'envisager en "pur PHP". L'environnement PHP n'existe à la base
que dans le contexte du requête client du serveur Web. Envisager une
allocation de mémoire partagée et son maintien pendant toute la "durée de
vie" du serveur n'est donc pas un problème spécifique PHP mais un besoin
d'utiliser les mécanismes intrinsèques de l'OS (et plus précisément, les
mécanismes intrinsèques de l'OS autorisés dans l'environnement du serveur
Web, ce qui peut être très restrictif selon la configuration).
Donc, pour apporter une réponse concrête, je séparerais le problème en 2
sous-problèmes :
1) allouer, initialiser et maintenir les données en mémoire, c'est a priori
le rôle d'un programme "permanent" (service Windows ou démon Unix).
2) accéder à ces données depuis le script PHP lancé par le serveur Web.
A priori sur un système UNIX conforme Systeme V tu peux allouer un segment
de mémoire partagée par le programme (1), y accéder dans le script PHP (2)
par shm_attach. Pour que dans (2) shm_get_var puisse directement retrouver
les variables dans la mémoire partagée, il faut que (1) les ait écrit
conformément à ce que fait ou ferait shm_put_var (sérialisation conforme
PHP).
Sur un système Windows et pour la partie PHP, tu devras te tourner vers des
fonctions spécifiques (Win32 API ou .NET) à instancier à la main pour
accéder aux objets mémoires partagés de l'OS...
Il va sans dire que ton script devient fortement dépendant de l'OS et
surtout ne tournera que sur une machine dédiée que tu maîtrises...
Une solution indépendante de l'OS serait plutôt de concevoir (1) comme un
serveur TCP, et d'utiliser les sockets en PHP pour implémenter en (2) un
mécanisme de type requête / réponse.
Bonne journée sur le parc...
-- J.D.
LG> qui pourrait me renseigner ou je pourrais trouver un site web avec
LG> des liste de noms pour envoi de mailing
NP> Demande à info@cnil.fr, les listes de noms, ca les connaît..
-+- LG In Guide du Neuneu d'Usenet : Neuneu ne doute de rien -+-
"NTH" a écrit dans le message de news:400eeb6f$0$19271$
Bonjour
J'aimerais savoir comment stocker des données de façon permanent au serveur
http et pouvoir y accéder via php.
Je comprends à peu près ton besoin mais je pense que ce n'est pas une bonne approche de l'envisager en "pur PHP". L'environnement PHP n'existe à la base que dans le contexte du requête client du serveur Web. Envisager une allocation de mémoire partagée et son maintien pendant toute la "durée de vie" du serveur n'est donc pas un problème spécifique PHP mais un besoin d'utiliser les mécanismes intrinsèques de l'OS (et plus précisément, les mécanismes intrinsèques de l'OS autorisés dans l'environnement du serveur Web, ce qui peut être très restrictif selon la configuration).
Donc, pour apporter une réponse concrête, je séparerais le problème en 2 sous-problèmes : 1) allouer, initialiser et maintenir les données en mémoire, c'est a priori le rôle d'un programme "permanent" (service Windows ou démon Unix). 2) accéder à ces données depuis le script PHP lancé par le serveur Web.
A priori sur un système UNIX conforme Systeme V tu peux allouer un segment de mémoire partagée par le programme (1), y accéder dans le script PHP (2) par shm_attach. Pour que dans (2) shm_get_var puisse directement retrouver les variables dans la mémoire partagée, il faut que (1) les ait écrit conformément à ce que fait ou ferait shm_put_var (sérialisation conforme PHP).
Sur un système Windows et pour la partie PHP, tu devras te tourner vers des fonctions spécifiques (Win32 API ou .NET) à instancier à la main pour accéder aux objets mémoires partagés de l'OS...
Il va sans dire que ton script devient fortement dépendant de l'OS et surtout ne tournera que sur une machine dédiée que tu maîtrises...
Une solution indépendante de l'OS serait plutôt de concevoir (1) comme un serveur TCP, et d'utiliser les sockets en PHP pour implémenter en (2) un mécanisme de type requête / réponse.
Bonne journée sur le parc...
-- J.D. LG> qui pourrait me renseigner ou je pourrais trouver un site web avec LG> des liste de noms pour envoi de mailing NP> Demande à , les listes de noms, ca les connaît.. -+- LG In Guide du Neuneu d'Usenet : Neuneu ne doute de rien -+-
Davel_x
| Tu crois qu'une affectation c'est gratuit pour la cpu? sans parler de la | précompilation de 1 millions de lignes d'affectation du php...
et un $RACINE= array(...........) ???
-- **davel_x** http://www.lerpg.com
| Tu crois qu'une affectation c'est gratuit pour la cpu? sans parler de la
| précompilation de 1 millions de lignes d'affectation du php...
| Tu crois qu'une affectation c'est gratuit pour la cpu? sans parler de la | précompilation de 1 millions de lignes d'affectation du php...
et un $RACINE= array(...........) ???
-- **davel_x** http://www.lerpg.com
Pierre GOIFFON
Johann Dantant wrote:
J'aimerais savoir comment stocker des données de façon permanent au serveur http et pouvoir y accéder via php.
Je comprends à peu près ton besoin mais je pense que ce n'est pas une bonne approche de l'envisager en "pur PHP". L'environnement PHP n'existe à la base que dans le contexte du requête client du serveur Web. Envisager une allocation de mémoire partagée et son maintien pendant toute la "durée de vie" du serveur n'est donc pas un problème spécifique PHP mais un besoin d'utiliser les mécanismes intrinsèques de l'OS
Euh, pas tout à fait d'accord avec celà ! C'est un mécanisme classique de variables d'application, et c'est implémenté très simplement en ASP par exemple. Je n'arrive pas à mettre la main dessus pour PHP ??
Sinon, dans la suite de ce que vous suggérez, il est éventuellement possible, suivant le serveur utilisé, de modifier des variables d'environnement.
-- Pour me répondre par mail privé, merci de supprimer _NOSPAM_ de mon adresse.
Un grand merci à OE Quote Fix pour rendre OE utilisable :) => http://home.in.tum.de/~jain/software/quotefix.php
Johann Dantant wrote:
J'aimerais savoir comment stocker des données de façon permanent au
serveur http et pouvoir y accéder via php.
Je comprends à peu près ton besoin mais je pense que ce n'est pas une
bonne approche de l'envisager en "pur PHP". L'environnement PHP
n'existe à la base que dans le contexte du requête client du serveur
Web. Envisager une allocation de mémoire partagée et son maintien
pendant toute la "durée de vie" du serveur n'est donc pas un problème
spécifique PHP mais un besoin d'utiliser les mécanismes intrinsèques
de l'OS
Euh, pas tout à fait d'accord avec celà ! C'est un mécanisme classique de
variables d'application, et c'est implémenté très simplement en ASP par
exemple. Je n'arrive pas à mettre la main dessus pour PHP ??
Sinon, dans la suite de ce que vous suggérez, il est éventuellement
possible, suivant le serveur utilisé, de modifier des variables
d'environnement.
--
Pour me répondre par mail privé, merci de supprimer _NOSPAM_ de mon
adresse.
Un grand merci à OE Quote Fix pour rendre OE utilisable :)
=> http://home.in.tum.de/~jain/software/quotefix.php
J'aimerais savoir comment stocker des données de façon permanent au serveur http et pouvoir y accéder via php.
Je comprends à peu près ton besoin mais je pense que ce n'est pas une bonne approche de l'envisager en "pur PHP". L'environnement PHP n'existe à la base que dans le contexte du requête client du serveur Web. Envisager une allocation de mémoire partagée et son maintien pendant toute la "durée de vie" du serveur n'est donc pas un problème spécifique PHP mais un besoin d'utiliser les mécanismes intrinsèques de l'OS
Euh, pas tout à fait d'accord avec celà ! C'est un mécanisme classique de variables d'application, et c'est implémenté très simplement en ASP par exemple. Je n'arrive pas à mettre la main dessus pour PHP ??
Sinon, dans la suite de ce que vous suggérez, il est éventuellement possible, suivant le serveur utilisé, de modifier des variables d'environnement.
-- Pour me répondre par mail privé, merci de supprimer _NOSPAM_ de mon adresse.
Un grand merci à OE Quote Fix pour rendre OE utilisable :) => http://home.in.tum.de/~jain/software/quotefix.php