Re: [OSM-dev-fr] python shapely - c geos
Eh bé ? 2éme réponse de 'geos simple example' dans gg ;) http://lists.osgeo.org/pipermail/geos-devel/2007-May/002895.html Yves Le 16 novembre 2012 09:07, didier2020 didier2...@free.fr a écrit : bonjour, j'explique: actuellement j'utilise python et shapely, et certains traitement sont trop long ( millions de boucle pour faire quelques centaines de corrections) j'ai pensé qu'un programme en c pourrait etre plus efficace. comme geos est utilisé par qadastre, j'ai commencé a essayer de comprendre ... je connais quelqu'un qui peut m'aider pour la programmation c, il m'a demandé un point de départ sur ce que je voulais faire d'ou ma demande: un bout de code qui cré 8 points et deux polygones ou linearings. les exemples que j'ai trouvé jusqu'a maintenant sont trop complexes par rapport a ma connaissance du c / programmation. merci d'avance didier ___ dev-fr mailing list dev-fr@openstreetmap.org http://lists.openstreetmap.org/listinfo/dev-fr ___ dev-fr mailing list dev-fr@openstreetmap.org http://lists.openstreetmap.org/listinfo/dev-fr
Re: [OSM-dev-fr] python shapely - c geos
je n'ai pas pensé qu'il pouvait y avoir une liste geos-devel merci ! Le vendredi 16 novembre 2012 à 09:15 +0100, Yves CAINAUD a écrit : Eh bé ? 2éme réponse de 'geos simple example' dans gg ;) http://lists.osgeo.org/pipermail/geos-devel/2007-May/002895.html Yves Le 16 novembre 2012 09:07, didier2020 didier2...@free.fr a écrit : bonjour, j'explique: actuellement j'utilise python et shapely, et certains traitement sont trop long ( millions de boucle pour faire quelques centaines de corrections) j'ai pensé qu'un programme en c pourrait etre plus efficace. comme geos est utilisé par qadastre, j'ai commencé a essayer de comprendre ... je connais quelqu'un qui peut m'aider pour la programmation c, il m'a demandé un point de départ sur ce que je voulais faire d'ou ma demande: un bout de code qui cré 8 points et deux polygones ou linearings. les exemples que j'ai trouvé jusqu'a maintenant sont trop complexes par rapport a ma connaissance du c / programmation. merci d'avance didier ___ dev-fr mailing list dev-fr@openstreetmap.org http://lists.openstreetmap.org/listinfo/dev-fr ___ dev-fr mailing list dev-fr@openstreetmap.org http://lists.openstreetmap.org/listinfo/dev-fr ___ dev-fr mailing list dev-fr@openstreetmap.org http://lists.openstreetmap.org/listinfo/dev-fr
Re: [OSM-dev-fr] python shapely - c geos
De : didier2020 didier2...@free.fr bonjour, j'explique: actuellement j'utilise python et shapely, et certains traitement sont trop long ( millions de boucle pour faire quelques centaines de corrections) j'ai pensé qu'un programme en c pourrait etre plus efficace. comme geos est utilisé par qadastre, j'ai commencé a essayer de comprendre ... je connais quelqu'un qui peut m'aider pour la programmation c, il m'a demandé un point de départ sur ce que je voulais faire d'ou ma demande: un bout de code qui cré 8 points et deux polygones ou linearings. les exemples que j'ai trouvé jusqu'a maintenant sont trop complexes par rapport a ma connaissance du c / programmation. Interessante cette librairie, merci pour l info ! Julien___ dev-fr mailing list dev-fr@openstreetmap.org http://lists.openstreetmap.org/listinfo/dev-fr
Re: [OSM-dev-fr] Notification renderd planté
Yves CAINAUD a écrit on 16/11/12 09:10: Salut, Renderd est vraiment stable, néanmoins j'aimerai gérer le fait qu'il puisse planter sur un serveur ubuntu 2.04, renderd est lancé depuis /etc/init.d/renderd (celui qui n'a jamais compilé geos, postgis, gdal, mapnik et mod_tile/renderd dans le désordre me jette un caillou). Quelle sont les meilleures manières de faire? Un script maison lancé par cron avec tentative de re-lancement avant notification email, ou y a-t-il une manière consacrée pour çà ? As-tu regardé du coté d'outil comme 'monit' (pquet eponyme) dont le but est justement de surveiller qu'un process tourne et de le relancer au cas où. A++ -- Rodolphe Quiédeville - Artisan Logiciel Libre http://cartosm.eu - Intégration de carte libre sur site web Blog : http://blog.rodolphe.quiedeville.org/ ___ dev-fr mailing list dev-fr@openstreetmap.org http://lists.openstreetmap.org/listinfo/dev-fr
Re: [OSM-dev-fr] Notification renderd planté
Merci a tout les deux! J'avais déjà essayé upstart/service pour démarrer renderd, mais je galérais pas mal. Du coup, je suis revenu sur le bon vieux /etc/init.d (mais si j'ai bien compris, c'est upstart qui s'occupe, maintenant). Effectivement, monit convient tout à fait! Mes résultats de recherches était essentiellement surchargé de Nagios qui est (un peu) overkill pour 1 process. Yves Le 16 novembre 2012 12:07, Rodolphe Quiedeville rodol...@quiedeville.orga écrit : Yves CAINAUD a écrit on 16/11/12 09:10: Salut, Renderd est vraiment stable, néanmoins j'aimerai gérer le fait qu'il puisse planter sur un serveur ubuntu 2.04, renderd est lancé depuis /etc/init.d/renderd (celui qui n'a jamais compilé geos, postgis, gdal, mapnik et mod_tile/renderd dans le désordre me jette un caillou). Quelle sont les meilleures manières de faire? Un script maison lancé par cron avec tentative de re-lancement avant notification email, ou y a-t-il une manière consacrée pour çà ? As-tu regardé du coté d'outil comme 'monit' (pquet eponyme) dont le but est justement de surveiller qu'un process tourne et de le relancer au cas où. A++ -- Rodolphe Quiédeville - Artisan Logiciel Libre http://cartosm.eu - Intégration de carte libre sur site web Blog : http://blog.rodolphe.**quiedeville.org/http://blog.rodolphe.quiedeville.org/ __**_ dev-fr mailing list dev-fr@openstreetmap.org http://lists.openstreetmap.**org/listinfo/dev-frhttp://lists.openstreetmap.org/listinfo/dev-fr ___ dev-fr mailing list dev-fr@openstreetmap.org http://lists.openstreetmap.org/listinfo/dev-fr
Re: [OSM-dev-fr] python shapely - c geos
Que ce soit en Python ou Java ou C++ les différences de performances sont extrèmement minimes (à algorithme équivalent). Tout bonnement car le code est de toute façon exécuté en code natif compilé (même si en Python ou Java, la compilation est faite à la demande au tout début de l'utilisation d'une classe). Je dirais même l'ayant constaté souvent, que le code est plus rapide en Python ou Java qu'en C++, tout bonnement car la compilation a lieu sur la machine cible elle-même en tenant compte au mieux de ses capacités physiques et de tout un tas de critères liées aux mesures de performance (le code s'autooptimise) : ce n'est pas le cas du code C++ qui est compilé sur une machine donnée pour être déployé sur une autre dont on ne connait pas grand chose. Bref le problème n'est pas là : le choix de l'algorithme (et surtout des structures de données utilisées), et divers détails (surtout liés à la localité des données, et à certaines autres choses comme la minimisation des appels à l'allocateur mémoire), c'est ce qui fait réellement la différence. L'autre différence c'est lié aux traitements qu'on fait en trop (par exemple analyser une structure en entier, pour n'en utiliser en fin de compte qu'une toute petite partie : les APIs ou bblilothèques utilisées doivent être bien choisies). Sinon en C++ on a tendance à en faire trop (et dans ce trop, ne pas tout vérifier et introduire des anomalies qui se répercutent sur ce dont on a réellement besoin). Bref une appli avant d'être du code dans un langage donné, c'est avant tout une bonne architecture, un bon design (ça passe même avant toute optimisation locale du code, surtout en C++, car Java ou Python et tout langage fonctionnant sur une base de machine virtuelle savent éliminer plein de choses automatiquement si on ne les utilise pas). Une solution hybride, c'est le C++ compilé en code managé pour une machine virtuelle (par exemple .Net) qui offre le meilleur des deux mondes (mais pas tout car C++ permet encore trop de choses : il faut se restreindre à employer du code managé clean sans manipulations de pointeurs supposant un modèle mémoire unique). Mais il n'y a strictement aucune différence de performance alors entre du C++ managé (ou C#), du Java (ou du J#) hormi les performances de la machine virtuelle elle-même (et les VM Java sont aujourd'hui excellentes, du moins celles fournies par Sun/Oracle, car du côté des VM Java de Google, Dalvik VM, ou de GNU c'est pas encore le top au niveau de leur gestionnaire mémoire ; on peut aussi le dire aussi de la VM pour CLI (.Net) de Microsoft est bien meilleure que les autres VM CLI portées actuellement. Si on veut le top des VM, Intel fournit une VM managée vraiment au poil (mais elle est chère et sert surtout pour des serveurs pro commerciaux); Intel sait aussi faire des compilateurs C++ très performants (y compris C++ pour CLI/.Net où il fournit des optimiseurs dynamiques pour les VM a compilation de type JIT, autrement dit compilation à l'exécution, sur la machine cible et pouvant même adapter le code compilé en fonction de la charge à effectuer ou de la charge en cours, et la possibilité de distribuer le code automatiquement sur un réseau de processeurs distants fournisseurs de puissance, ou vers des processeurs massivement parallèles, tels que les GPU). C++ n'est cependant pas le code idéal pour programmer du parallélisme massif, il n'est pas assez précis pour décrire les conditions de rendez-vous, de synchronisation, ou de dépendance entre les flux de données ou leur conditions de validité (ou alors il s'avère particulièrement verbeux et les oublis et erreurs de programmation sont alors nombreuses). De fait un compilateur C++ s'interdit plein d'optimisations possibles car il n'a pas les moyens de décider tout seul. J'ai programmé beaucoup en C et C++ dans le passé; maintenant je suis accro à Java (même si le langage est encore un peu verbeux pour certaines choses, mais il existe des moyens automatiques de réduire cette verbosité, y compris avec les générateurs de code et les frameworks), et de temps en temps Eiffel pour des modélisations plus complexes, surtout en phase de prototypage et évaluation de la faisabilité ou l'étude fonctionnelle préalable. D'autres langages plus pratiques (mais compatibles) apparaissent qui compilent pour une VM Java, .Net, ou Python ; même pour PHP qui inclue lui aussi une VM qui s'améliore de plus en plus mais n'a pas encore le même niveau de qualité et devrait plutôt songer à utiliser une compilation vers une VM Java, .Net, ou Python, ce qui est parfaitement possible et permettrait des intégrations et déploiement plus faciles. Javascript aussi est devenu extrèmemement performant dans ses VM. On reproche souvent aux programmeurs Java ou .Net (et surtout Javascript) d'utiliser trop la Réflexion, c'est vrai, ça ralentit énormément beaucoup et ça brise le moule solide de l'analyse et la modélisation. Pourtant on a des outils dans les deux cas qui permettent au code à l'exécution