IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Applets Java Discussion :

Allouer de la mémoire avant de lancer une applet


Sujet :

Applets Java

  1. #1
    Membre du Club
    Inscrit en
    Janvier 2007
    Messages
    56
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 56
    Points : 44
    Points
    44
    Par défaut Allouer de la mémoire avant de lancer une applet
    Bonjour,

    J'ai développé un applet qui consomme beaucoup de mémoire.
    Or par défaut, la JVM alloue 64Mo de mémoire pour une applet.
    Je voudrais savoir si elle possible de passer un paramètre dans le html( ou autre) a la jvm pour qu'elle démarre avec la valeur passée en paramètre. ( a priori non)

    Ou sinon peut-on acceder aux parametres de java runtime en utilisant du code java...ou autre (C++...)?

    La solution que j'ai adoptée pour le moment est de prévenir l'utilisateur lorsque l'applet demande plus de 64Mo et de lui dire d'aller ajouter dans "panneau de config->java->Parametre execution JRE" le parametre -Xmx256m ... donc pas génial...
    Merci

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 31
    Points : 24
    Points
    24
    Par défaut
    Bonjour,
    Il n'est pas possible de modifier la mémoire réservé à une Applet.
    En tous cas pour le moment, ils sont en pour parler à ce sujet pour les prochaines versions de Java.
    Par contre ce que tu peux faire est :
    -> Ce que tu as fait : expliquer aux gens ce qu'il faut faire
    -> Une Java Webstart, là tu peux fixer la mémoire utiliser. Deux choses c'est que ce n'est plus vraiment intégrer au site, mais bon ce n'est pas le plus génant, mais surtout, ce qui est génant à mon avis c'est leur barre de chargement laide avec validation multiple
    -> Signer ton Applet, copier un jar en local, et le lancer depuis ton Applet avec un Runtime.exec. Bien entendu ton application ne sera plus intégrée au site (comme la webstart), mais tu n'auras qu'une seule validation à demandée à l'utilisateur (la signature) et tu auras le contrôle de la barre de chargement.
    Même si la derniére solution peut paraitre séduisante, il y a deux trois chose à faire attention pour que ça marche bien.
    JackHack

  3. #3
    Membre du Club
    Inscrit en
    Janvier 2007
    Messages
    56
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 56
    Points : 44
    Points
    44
    Par défaut
    Ok , merci, ta réponse me satisfait,
    La solution de lancer un ".jar" sur le pc client est astucieuse. Cela permet d'allouer plus de mémoire au lancement.
    C'est quand même un peu dommage de faire un fonctionnement comme ca juste pour allouer plus de mémoire.
    J'espère aussi que dans les prochaines versions de java on pourra lancer une applet en parametrant la memoire allouée.

    J'aurai quand même voulu en attendant pouvoir créer une petite install permettant de parametrer java pour qu'il lance les applets avec comme paramètre la mémoire à allouer.
    Par contre j'ai regardé un peu partout, mais je n'ai pas trouvé où sont stockées les informations "saisies" par l'utilisateur sur le "panneau de config java". Fichiers? registres? autres?

    Merci

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 31
    Points : 24
    Points
    24
    Par défaut
    Bonjour,
    Le fichier se trouve dans to user home, sous windows en général "C:\Documents and Settings\noDuCompte" dedans il y a un dossier caché appelé : "Application Data" c'est pas un secret beaucoup d'application ecrives des donner la dedans, puis "Sun\Java\Deployment" et là tu trouves un fichier nommé : "deployment.properties" qui contient les réglages de la JVM.
    Je vois bien l'idée que tu as eu en te demandant ou était ce fichier, pourquoi mon Applet le modifierais pas ? Deux choses, d'abord assures toi de ce que tu fait, ensuite tes modifications seront prises en compte si l'utilisateur ferme son navigateur et toutes les pages et enssuite reviens sur ta page. Mais moi je me vois pas dire à mes utilisateurs de mon site, : bon c'est bien vous êtes là, maintenant fermer votre navigateur, relancez le et revenez me voir, .... c'est plutôt bof comme truc
    A bientôt
    JackHack

  5. #5
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Points : 48 807
    Points
    48 807
    Par défaut
    Personellement, je trouve qu'allouer 64M de mémoire pour une page web (et donc une applet) c'est déjà énorme, t'imagine la consommation si t'as juste 10 pages comme çà ouverte ou, pire si t'as 3 applets dans la page? Si t'as besoin d'autant, c'est que tu fait autre chose qu'une applet, plutot une application chargée automatiquement depuis le web, et donc java webstart est indiqué.

  6. #6
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Points : 48 807
    Points
    48 807
    Par défaut
    au fait, si t'es pas sous windows, modifier la config à la main, çà va être dur :p

  7. #7
    Membre du Club
    Inscrit en
    Janvier 2007
    Messages
    56
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 56
    Points : 44
    Points
    44
    Par défaut
    D'acc merci pour ta reponse jackhack.
    L'applet que j'ai construite n'est pas une applet dite "classique". Elle ne se trouve pas sur un vrai site web non plus. En fait cet applet permet d'émuler un écran tactile. Elle est embarquée dans un matériel. Ce matériel est vendu au client avec l'applet dedans.


    Mais moi je me vois pas dire à mes utilisateurs de mon site, : bon c'est bien vous êtes là, maintenant fermer votre navigateur, relancez le et revenez me voir, .... c'est plutôt bof comme truc
    Le fait d'effectuer un reglage une bonne fois pour toute de manière simple n'est pas dérangeant. L'utilisateur a acheté le programme, il le regle, puis il l'utilise.

    Personellement, je trouve qu'allouer 64M de mémoire pour une page web (et donc une applet) c'est déjà énorme
    Moi cela ne me parait pas "hallucinant" d'allouer + de 64Mo pour un applet.
    La mienne permet de charger plusieurs "programmes écran" dont le nombre de pages écran et le nombre d'images est illimité (en théorie). Donc forcément qui dit gros programme à charger, dit allocation de mémoire plus importante...

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 55
    Points : 40
    Points
    40
    Par défaut
    Oui mais je vois une raison de sécurité dans tout ça : imagine un développeur malveillant (sisi, ça existe) qui sur son site lance une applet Java non-signée qui s'allouerait 3 fois la mémoire dispo sur la machine cliente (genre demande d'allocation de 25Go sur un vieux PIII ...) machine qui tombe et client heureux ...

  9. #9
    Membre du Club
    Inscrit en
    Janvier 2007
    Messages
    56
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 56
    Points : 44
    Points
    44
    Par défaut
    Alors la j'ai rien compris à ce que tu voulais dire chportos...

  10. #10
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Points : 48 807
    Points
    48 807
    Par défaut
    Ton problème c'est que tu utilise "applet" là ou tu devrais utiliser "application". Si c'est "pas vraiment" une page web et si t'as pas le controle sur l'applet (pas accès au code source) et si tout ce dont ton client à besoin c'est de charger l'applet pour utiliser son "application", pourquoi ne pas passer par l'applet viewer de sun? Ca a pas besoin d'un navigateur (tu lui file juste le fichier html) et çà peut prendre des paramètres de lancement.

    Sinon, si c'est ton code l'applet, pourquoi ne pas en faire une applicaiton indépendante (à télécharger et runner) ou, plus souplement, une application webstart ?

  11. #11
    Membre du Club
    Inscrit en
    Janvier 2007
    Messages
    56
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 56
    Points : 44
    Points
    44
    Par défaut
    Au final j'ai choisi de lancer l'applet via java web start.
    Cela permet de fixer la mémoire.
    Merci
    a+

  12. #12
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 31
    Points : 24
    Points
    24
    Par défaut Juste un petit ajout
    Pour la proposition :
    Citation Envoyé par JackHack Voir le message
    Bonjour,
    -> Signer ton Applet, copier un jar en local, et le lancer depuis ton Applet avec un Runtime.exec. Bien entendu ton application ne sera plus intégrée au site (comme la webstart), mais tu n'auras qu'une seule validation à demandée à l'utilisateur (la signature) et tu auras le contrôle de la barre de chargement.
    Même si la derniére solution peut paraitre séduisante, il y a deux trois chose à faire attention pour que ça marche bien.
    J'ai fait une API permettant cela, que vous pouvez récupèrer (code source et documentions) à :
    http://www.developpez.net/forums/sho...t=13730&page=6 bon ça peut changer de page au cours du temps, donc cherchez le sujet webstart like, si il n'est plus à cette page
    JackHack

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 29/09/2014, 12h39
  2. [AC-2003] Vérifier des conditions avant de lancer une requête ?
    Par artus59 dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 04/07/2013, 23h07
  3. Tester si le mobile est "géolocalisable" avant de lancer une fonction
    Par VTwin dans le forum API standards et tierces
    Réponses: 2
    Dernier message: 08/03/2012, 22h59
  4. À lire avant de lancer une discussion
    Par Mickael Baron dans le forum Eclipse PHP
    Réponses: 0
    Dernier message: 20/03/2008, 20h52
  5. Marquer une pause avant de lancer une action
    Par PrinceMaster77 dans le forum ASP
    Réponses: 1
    Dernier message: 12/07/2006, 11h50

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo