Crunchez vos adresses URL
|
Rejoignez notre discord
|
Hébergez vos photos
Page 303 sur 334 PremièrePremière ... 203253293295296297298299300301302303304305306307308309310311313 ... DernièreDernière
Affichage des résultats 9 061 à 9 090 sur 10008
  1. #9061
    Dites voir, dans C++11 on peut faire facilement des alias avec using mais je capte pas ce que je fais mal pour que ça fonctionne pas. :/
    Je veux utiliser des itérateurs, donc plutôt qu'écrire à chaque fois std::vector<int>::iterator je veux me faire des alias.

    Code:
    	// 'Alias' pour les iterators :
    	template <typename T>
    	using constItVec = std::vector<T>::const_iterator;
    
    	template <typename T>
    	using itVec = std::vector<T>::iterator;
    Où T prendra différents types en fonction de mes besoins.

    Ensuite j'ai donc une classe avec son .h mais deux .cpp et j'en aurais besoin que pour un des deux. Du coup ma définition de itVec et constItVec je la place où exactement ? Est-elle correcte ?

    Et on est d'accord qu'ensuite je n'aurais plus qu'à faire genre :
    Code:
    std::vector<int> * mon_vecteur;
    itVec<int> mon_iterateur1 = mon_vecteur->begin();
    constItVec<int> mon_iterateur2 = mon_vecteur->begin();

  2. #9062
    Je connais assez mal cette utilisation de using mais essaye d'ajouter typename devant std::vector<T>::... (je crois que le compilateur ne connait pas encore vector<T> et ne sais donc pas que const_iterator est un type).

    Sinon donne l'erreur, ça peut aider.

    Place le dans un header si tu en as besoin dans plus d'un fichier.

    Edit: avec ton code, mon g++ 6 me dit: need ‘typename’ before ‘std::vector<T>::const_iterator’ because ‘std::vector<T>’ is a dependent scope. C'est clair comme message d'erreur au moins.

  3. #9063
    Sinon tu t'emmerdes pas et tu fais:
    Code:
    std::vector<int> * mon_vecteur;
    auto mon_iterateur1 = mon_vecteur->begin();
    auto mon_iterateur2 = mon_vecteur->cbegin();
    "Dieu est mort" · "Si le téléchargement c’est du vol, Linux c’est de la prostitution."

  4. #9064
    Alors le truc c'est qu'ensuite je vais devoir paralléliser avec OpenMP, qui ne supporte pas vraiment auto si j'ai bien lu. Mais je retiens pour une prochaine fois.

    Ok c'est bon avec typename devant std::vector<T> ça fonctionne, visual studio était pas aussi précis que gcc sur l'erreur qu'il me renvoyait. Merci !

  5. #9065
    Ah et d'ailleurs, vous pensez quoi de l'utilisation des itérateurs pour parcourir un std::vector pour ensuite devoir faire des opérations du type :
    Code:
    for(int index=0; index<vecteur1_parcouru->size(); index++
    vecteur2[index] = operation(vecteur1_parcouru[index]);
    Parce que c'est par mal ce genre de truc que j'ai à faire, donc en ajoutant un itérateur pour le vecteur1_parcouru c'est cool pour accéder facilement à la valeur dont j'ai besoin, mais pour accéder à ce qui anciennement était vecteru2[index] je suis obligé aussi de faire un itérateur pour vecteur2 que j'incrémente à chaque fois que je suis dnas la boucle, ou alors ya une astuce que je ne connais pas ?

  6. #9066
    Citation Envoyé par Patate Voir le message
    En outil d'analyse statique vous pensez à quoi ? Statique c'est que ça analyse uniquement le code source, pas pendant l'exécution ?
    Sans ordre particulier :

    - Visual Studio a une option "/analyze" qu'on peut lancer depuis l'IDE (faut juste la trouver au milieu des analyses de perf)
    - clang-analyze
    - PVS Studio en version d'essai
    - CPPCheck

  7. #9067
    Si tu fais du calcul sur des vecteurs et des matrices en OpenMP, te fais pas chier avec des itérateurs, fais des boucles sur des entiers et indexe les std::vector avec comme si c'était des tableaux C. Sinon tu es à peu près sûr de paumer ton compilateur (déjà que si ta boucle est pas écrite exactement avec le bon type signed/unsigned, la bonne condition d'arrêt != ou <, et le bon incrément, le compilo se vautre...)

  8. #9068
    Ah ok, et c'est par expérience que tu parles j'imagine, ya rien spécialement dans la littérature pour justifier ça ?
    Je te crois c'est pas le problème, c'est plus pour dire ça à mon tuteur à qui j'avais demandé avant si valait mieux utiliser des itérateurs ou des entiers pour parcourir mes vecteurs... :/

  9. #9069
    A partir d'OpenMP 3.0 on peut paralléliser sur les itérateurs, mais comme dit mogluglu il faut que ta boucle soit "bien écrite" pour être sûr que le compilo arrive à s'en dépatouiller, ce qui est beaucoup plus garanti en faisant un compteur à la C. Après c'est vrai que purement au niveau programmation , c'est "sale".

    Ou alors tu attends C++17 et la parallel STL
    Citation Envoyé par Sidus Preclarum Voir le message
    Ben du caramel pas sucré alors...
    "Avant, j'étais dyslexique, masi aujorudh'ui je vasi meiux."

  10. #9070
    La littérature dit ça plus ou moins en creux, parce que quasiment tous les papiers sur la parallélisation des 40 dernières années supposent des accès par indices à des tableaux Fortran ou C (statiques ou à la limite pointeurs restrict).
    Les itérateurs C++, c'est jamais que des pointeurs glorifiés et c'est la merde pour tout ce qui est analyse statique. (C'est possible de dérouler le spaghetti, mais ça rajoute une couche de complexité et comme personne ne programme comme ça en HPC de toute façon, ça n'est généralement pas implémenté dans les compilateurs.)

    Comme refs tu peux balancer tout l'évangile de l'église du Saint Modèle Polyédrique : http://polyhedral.info/
    Si ton tuteur te fais encore chier tu commences à lui parler des inégalités de Fourier-Motzkin et du Lemme de Farkas, il fera moins le malin.

  11. #9071
    Dites les canards (j'espère être au bon endroit)
    je sèche sur une solution qui pourrait m'embellir la vie. J'ai créé un pincab (flipper virtuel). Et je cherche à automatiser le lancement du jeu avec une map/table aléatoire (y'en a une cinquantaine sur le jeu)

    Est-il possible de créer un batch avec une cinquantaine de raccourci de ce style :
    "C:\Program Files (x86)\Steam\Steam.exe" -applaunch 226980 STARWARS_Droids
    "C:\Program Files (x86)\Steam\Steam.exe" -applaunch 226980 Tesla
    "C:\Program Files (x86)\Steam\Steam.exe" -applaunch 226980 Rome

    et d'en choisir un aléatoirement pour le lancer automatiquement ?!
    de façon à lancer le .bat, qui lance le jeu avec une table aléatoire. Ca serait top!

  12. #9072
    Tu peux essayer de t'inspirer de la solution proposé dans ce fil sur stackoverflow en l'adaptant légèrement

  13. #9073
    Avec Linux, j’ai une solution qui utilise rooldice et head (ou tail).
    une balle, un imp (Newstuff #491, Edge, Duke it out in Doom, John Romero, DoomeD again)
    Canard zizique : q 4, c, d, c, g, n , t-s, l, d, s, r, t, d, s, c, jv, c, g, b, p, b, m, c, 8 b, a, a-g, b, BOF, BOJV, c, c, c, c, e, e 80, e b, é, e, f, f, f, h r, i, J, j, m-u, m, m s, n, o, p, p-r, p, r, r r, r, r p, s, s d, t, t
    Canard lecture

  14. #9074
    Citation Envoyé par Møgluglu Voir le message
    La littérature dit ça plus ou moins en creux, parce que quasiment tous les papiers sur la parallélisation des 40 dernières années supposent des accès par indices à des tableaux Fortran ou C (statiques ou à la limite pointeurs restrict).
    Les itérateurs C++, c'est jamais que des pointeurs glorifiés et c'est la merde pour tout ce qui est analyse statique. (C'est possible de dérouler le spaghetti, mais ça rajoute une couche de complexité et comme personne ne programme comme ça en HPC de toute façon, ça n'est généralement pas implémenté dans les compilateurs.)
    Je pense que les modes d'adressage de la majorité de CPU sont bien biaisés pour que le construct pbase + i << n reste d'actualité un petit moment.
    Les itérateurs, ça peut servir pour la programmation générique, mais pour itérer sur des tableaux bof bof. Et en debug et sans inlining, merci l'overhead.
    Sleeping all day, sitting up all night
    Poncing fags that's all right
    We're on the dole and we're proud of it
    We're ready for 5 More Years

  15. #9075
    C'est surtout que passer d'un for(i=0;i<n;i++) *(a+i<<3); à un for(p=a;p<a+n<<3;p+=8) *p;, c'est du simple loop-invariant hoisting + strength reduction qu'on sait faire depuis 40 ans et qui est dans tous les compilateurs à partir de -O1.
    Par contre, la transformation inverse qui consiste à reconstruire des accès par indices à partir d'une soupe de pointeurs, c'est une autre histoire...

  16. #9076
    Citation Envoyé par shazamic Voir le message
    Dites les canards (j'espère être au bon endroit)
    je sèche sur une solution qui pourrait m'embellir la vie. J'ai créé un pincab (flipper virtuel). Et je cherche à automatiser le lancement du jeu avec une map/table aléatoire (y'en a une cinquantaine sur le jeu)

    Est-il possible de créer un batch avec une cinquantaine de raccourci de ce style :
    "C:\Program Files (x86)\Steam\Steam.exe" -applaunch 226980 STARWARS_Droids
    "C:\Program Files (x86)\Steam\Steam.exe" -applaunch 226980 Tesla
    "C:\Program Files (x86)\Steam\Steam.exe" -applaunch 226980 Rome

    et d'en choisir un aléatoirement pour le lancer automatiquement ?!
    de façon à lancer le .bat, qui lance le jeu avec une table aléatoire. Ca serait top!
    On a trouvé la formule secrete ici ! : http://www.developpez.net/forums/d15...m/#post8698396

  17. #9077
    Citation Envoyé par Alab Voir le message
    Ah et d'ailleurs, vous pensez quoi de l'utilisation des itérateurs pour parcourir un std::vector pour ensuite devoir faire des opérations du type :
    Code:
    for(int index=0; index<vecteur1_parcouru->size(); index++
    vecteur2[index] = operation(vecteur1_parcouru[index]);
    Les trve ils font ça avec std::transform :P
    Bon ça tue un peu OpenMP (je suppose, sauf si tu es joueur et trouve qu'un compilo implémente std::experimental::parallel::transform), mais qu'est ce que c'est beau.
    Citation Envoyé par François
    L'ordinateur cantique, c'est l'avenir.

  18. #9078
    "Déconstruire", c'est "détruire" en insérant des "cons".
    Battle.net (Diablo 3) : Fbzn#2658 ----- / ----- / ----- Steam ID

  19. #9079
    Livres de programmation sur Humble Bundle:
    https://www.humblebundle.com/books/j...ng-book-bundle
    "Déconstruire", c'est "détruire" en insérant des "cons".
    Battle.net (Diablo 3) : Fbzn#2658 ----- / ----- / ----- Steam ID

  20. #9080
    Citation Envoyé par FB74 Voir le message
    Livres de programmation sur Humble Bundle:
    https://www.humblebundle.com/books/j...ng-book-bundle
    Dans la liste, il y a les bouquins sur :
    * haskell
    * erlang
    * lisp
    * R
    Qui peuvent m'intéresser. Quelqu'un les connait et à un avis (sur les livres, par sur les langages) ?

    Haskell, je connais déjà, mais j'aimerais bien approfondir un peu, ça fait un moment que je n'en ai pas fait.
    edit: en fait, ça correspond à http://learnyouahaskell.com/, que j'ai déjà.

    Le reste, je connais de nom et je vois à quoi ressemble la syntaxe, de loin, dans le brouillard, mais j'aurais bien voulu faire mumuse avec (avec erlang surtout).

    Write great code peut aussi éventuellement m'intéresser, mais j'ignore totalement son contenu.

    Edit: j'en profite que je suis de passage sur ce topic.
    Au boulot, je dois faire de l'analytique sur des milliards de données d'un site web, et ce sur une machine qui est pas super performante (toute proportion gardée).
    Au départ, je pensais torcher le truc à l'arrache (parce que ça me gavait pour un tas de raisons) et les fondations du truc utilisait mysql.
    Sauf que les perfs étaient à la rue. J'ai essayé d'optimiser le truc, j'ai eu de bons gains, mais encore très loin d'être satisfaisant.
    Le projet patinant, j'ai décidé de tout reprendre from scratch, parce que ça allait dans le mur.
    Sur la même machine, je suis alors parti sur du mongodb (après avoir testé d'autres trucs), et après un travail sur les données à insérer, je me suis retrouver avec des perfs de malade par rapport à mysql.
    Mysql est pas du tout adapté à cette situation, le but n'est pas de le dévaloriser ou quoi, c'était juste pas le bon outil pour le bon travail.

    Mais du coup, ça m'intrigue de savoir comment fonctionne mongodb sous le capot. En particulier, comment il gère les indexes, et comment il va pour chercher et calculer les données à cette vitesse.
    Quelqu'un aurait un petit papier sur la théorie derrière mongodb ?
    Dernière modification par Sekigo Le Magnifique ; 17/08/2016 à 21h51.
    J'ai raison et vous avez tort.

  21. #9081
    J'ai pas les réponses pour MongoDB, mais t'as essayé ElasticSearch sinon ?
    C'est typiquement adapté à la situation que tu décris;

  22. #9082
    ElasticSearch est un moteur de recherche. Je ne pense pas que ce soit typiquement adapté à ma situation.
    Je n'ai pas vraiment besoin de faire des recherches, j'ai surtout besoin d'agglomérer des données.
    Typiquement, j'ai plusieurs points par secondes représentant chacun un type de visite. Chacun de ces points a un ensemble de clé-valeur.
    Mon boulot est de regrouper ces points en heures/jours/mois/années, en accumulant certaines valeurs, suivant des règles de regroupement bien précise.

    Au départ, j'avais testé influxdb, vu que ça semblait correspondre à mon besoin, et je l'avais déjà utilisé. Sauf que la cardinalité des clés (en gros, on pose plusieurs indexes sur plusieurs clés, et la cardinalité est le produit des sommes des valeurs unique de chacune des clés) est trop grande pour influxdb, qui m'obligeait à avoir une machine avec plus de 64Go de RAM, que je n'ai pas sous la main, étant donné qu'il semble balancer tous les indexes en RAM pour améliorer les temps de traitements. Et ce, pour seulement une petite année de données, alors que j'ai 10 ans de données à traiter.
    Mongodb balance aussi les indexes en RAM, mais il ne provoque pas d'effondrement de la consommation mémoire et il traite les agrégats vraiment rapidement. Et surtout, il ne me semble pas être impacté selon le nombre de données (en gros, avec mysql, plus j'avais de données, plus les temps d'insertion et de traitements des indexes devenait long).

    Bref, du coup, ça a attisé ma curiosité pour mongodb, et je n'ai pas trouvé grand chose sur la théorie derrière, du moins sur le site officiel. Il n'y a que du baragouin technico-commercial concernant le design ou la philosophie derrière, et je n'ai pas l'envie et (surtout) les capacités de rentrer dans le code source.
    J'ai raison et vous avez tort.

  23. #9083
    Citation Envoyé par Sekigo Le Magnifique Voir le message
    Bref, du coup, ça a attisé ma curiosité pour mongodb, et je n'ai pas trouvé grand chose sur la théorie derrière, du moins sur le site officiel. Il n'y a que du baragouin technico-commercial concernant le design ou la philosophie derrière, et je n'ai pas l'envie et (surtout) les capacités de rentrer dans le code source.
    J'y connais rien en bases de données et encore moins en base NoSQL, mais en gros c'est une grosse table de hashage bien optimisée, non?
    https://en.wikipedia.org/wiki/Docume...ented_database

    Si tu n'as pas besoin de relations complexes entre tables ou de faire des requêtes avec des jointures de folie, alors les bases relationnelles type SQL sont overkill, et ne scaleront pas aussi bien en volume de données que des implèm qui foutent tout en vrac dans des tables de hashage.
    Dernière modification par Møgluglu ; 18/08/2016 à 12h34.

  24. #9084
    Citation Envoyé par Møgluglu Voir le message
    J'y connais rien en bases de données et encore moins en base NoSQL, mais en gros c'est une grosse table de hashage bien optimisée, non?
    https://en.wikipedia.org/wiki/Docume...ented_database

    Si tu n'as pas besoin de relations complexes entre tables ou de faire des requêtes avec des jointures de folie, alors les bases relationnelles type SQL sont overkill, et ne scaleront pas aussi bien en volume de données que des implèm qui foutent tout en vrac dans des tables de hashage.
    This. A voir exactement l'implementation, mais je pense que c'est ça.
    Ce qu'il faut savoir, c'est qu'on ment beaucoup aux minmatars, surtout lorsqu'ils posent des questions du style: "t'es sûr que ça vole, ce truc ?" Cooking Momo, le 30/08/09

  25. #9085
    Citation Envoyé par Sekigo Le Magnifique Voir le message
    ElasticSearch est un moteur de recherche.
    Oui, mais pas seulement.
    https://www.elastic.co/blog/found-el...earch-as-nosql
    http://blog.quarkslab.com/mongodb-vs...formances.html

    Pour faire de l'analyse sur des très gros volumes de données, c'est parmi ce qui se fait de mieux actuellement niveau performances et scalabilité.
    C'est justement souvent en concurrence ou en supplément à MongoDB pour les cas d'utilisation de ton type.

  26. #9086
    Si vos données sont sous forme clé/valeur, je vous conseille de regarder Redis, la performance de ce truc est terrifiante.

  27. #9087
    Citation Envoyé par FB74 Voir le message
    Livres de programmation sur Humble Bundle:
    https://www.humblebundle.com/books/j...ng-book-bundle
    Nice. J'etais curieux concernant la orog fonctionnelle et le F#. J'ai une bonne raison de m'y mettre

  28. #9088
    Citation Envoyé par Naity Voir le message
    Nice. J'etais curieux concernant la orog fonctionnelle et le F#. J'ai une bonne raison de m'y mettre
    C'est quand même pas mal F#. Le typage ML et le framework .net derrière, c'est chouettos.
    Sleeping all day, sitting up all night
    Poncing fags that's all right
    We're on the dole and we're proud of it
    We're ready for 5 More Years

  29. #9089
    Citation Envoyé par Tramb Voir le message
    C'est quand même pas mal F#. Le typage ML et le framework .net derrière, c'est chouettos.
    Y parrait. J'ena i aucune utilité pour le taff mais je suis curieux. Et quitte à tater de la prg fonctionnelle, autant prendre un truc pasé sur une techno que je connais un peu (.NET).

  30. #9090
    Citation Envoyé par Sekigo Le Magnifique Voir le message
    Dans la liste, il y a les bouquins sur :
    * haskell
    * erlang
    * lisp
    * R
    Qui peuvent m'intéresser. Quelqu'un les connait et à un avis (sur les livres, par sur les langages) ?
    7 euros pour 11 électro-bouquins, tu prends peu de risques.
    Pour lisp, ça ressemble pas à un bouquin de référence. Mais les bouquins de référence sont "enlevés" (c'est le moins qu'on puisse dire), donc si celui du bundle est goleri et accessible, pourquoi pas.

    Ce qui me freine un peu, c'est le look artisanal de la maison d'édition. Y'a assez peu d'éditeurs académiques qui produisent les books de tous niveaux, et c'est clairement pas le style.

Page 303 sur 334 PremièrePremière ... 203253293295296297298299300301302303304305306307308309310311313 ... DernièreDernière

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •