Se connecter

Informatique

Création de Jeux

Sujet : [HS] Modération et Blabla.
lokilok
Niveau 11
04 décembre 2017 à 17:28:56

https://web.archive.org/web/20121118053638/https://developer.android.com/training/articles/perf-tips.html

La page à presque pas changée depuis 2012, il y a juste la partie "avoid internal Getter/setter" qui a été supprimée, j'ai pas vérifié mais je suis presque sur d'avoir vu cette partie plus tôt cette année, donc ça a été changé il y a pas longtemps mais les autres parties ont pas été modifiée, je sais pas trop ce qu'il faut en penser du coup :(

[-Shana-]
Niveau 10
04 décembre 2017 à 17:34:48

"There are two basic rules for writing efficient code:

Don't do work that you don't need to do.
Don't allocate memory if you can avoid it."

ça me semble logique [[sticker:p/1kkn]]

whiteapplex
Niveau 10
04 décembre 2017 à 17:38:26

Après pour contribuer à la discussion sur l'optimisation et la POO (en dehors de mon cas trivial et des cas de microoptimisation inutiles), j'ai lu ce commentaire récent (sous forme de thread de message twitter, ultra pratique) qui explique pas mal certaines contraintes d'optimisations:
https://twitter.com/etoddodd_/status/936422488787038208

Mais on reste dans les mêmes considérations, si t'en es au point d'optimiser des getters, t'as mal pensé ton application à la base.

lokilok
Niveau 11
04 décembre 2017 à 17:49:00

(sous forme de thread de message twitter, ultra pratique)

C'est ironique ?

[-Shana-]
Niveau 10
04 décembre 2017 à 18:05:11

Mais on reste dans les mêmes considérations, si t'en es au point d'optimiser des getters, t'as mal pensé ton application à la base.
:d) Surtout qu'il y a tellement de profiler puissant maintenant que c'est facile de savoir où optimisation il y a nécessité :(

whiteapplex
Niveau 10
04 décembre 2017 à 18:14:25

Le 04 décembre 2017 à 17:49:00 lokilok a écrit :

(sous forme de thread de message twitter, ultra pratique)

C'est ironique ?

Très ironique.

Le 04 décembre 2017 à 18:05:11 [-Shana-] a écrit :
Mais on reste dans les mêmes considérations, si t'en es au point d'optimiser des getters, t'as mal pensé ton application à la base.
:d) Surtout qu'il y a tellement de profiler puissant maintenant que c'est facile de savoir où optimisation il y a nécessité :(

C'est sûr. Et dans le doute le dicton prévaut: "premature optimization is the root of all evil". (Même si ce dicton peut-être utilisé un peu n'importe comment :noel: )

Arkwolf
Niveau 22
04 décembre 2017 à 21:26:27

Je m'étais déjà posé la question des getters / setters pour Android, parce que la doc officielle disait de faire attention à ça. Je m'étais dit que peut-être que pour un jeu Android qui est susceptible d'en appeler énormément à la seconde ça peut être bénéfique de les inliner. (je sais pas si ça a été le cas pour la version desktop par contre, je pense pas mais j'en sais rien)

Mais j'avais vu ce post de 2011 qui dit que depuis ils avaient bossé sur la jvm d'android et que ça inlinait déjà tout seul les getters et setters parfois : https://stackoverflow.com/questions/4912695/what-optimizations-can-i-expect-from-dalvik-and-the-android-toolchain/4930538#4930538

Et quoiqu'il en soit, on peut toujours passer son code à la moulinette progard (c'était recommandé à l'époque, maitnenant je sais pas) pour inliner les getters et setters automatiquement donc pas besoin de faire attention à ça quoi qu'il arrive sauf si progard te pose problème pour une raison x ou y [[sticker:p/1kki]]

Surtout qu'avant Android ça utilisait Dalvik comme machine virtuelle, depuis ça a été remplacé par Art et tu as un compilateur AOT quand t'installe les applications, et ça m'étonnerait pas que ça s'occupe de ce genre d'optimisation en amont.

Donc depuis tout ce temps je suppose que ça ne joue plus ou presque plus, mais j'en sais rien je dis peut être des bêtises :hap:

Et pour les phones qui sont vieux au point de même pas avoir de JIT, à mon avis ils sont habitués aux soucis de perf' [[sticker:p/1kkn]]

[-Shana-]
Niveau 10
04 décembre 2017 à 21:34:05

Et pour les phones qui sont vieux au point de même pas avoir de JIT, à mon avis ils sont habitués aux soucis de perf' [[sticker:p/1kkn]]

:d) Gaffe à ce que tu dis sur les téléphones low cost :hap:
C'est un marché potentiel :hap:

[[sticker:p/1jnj]]
Arkwolf
Niveau 22
04 décembre 2017 à 21:54:07

Attention je parle pas des téléphones low cost mais de ceux qui ont une version d'android qui date genre de plus de 7 ans [[sticker:p/1kkn]]

Je sais même pas si l'appli Android Market marche encore bien vu depuis, pour ceux qui ont pas la nouvelle appli Google Play :doute:

[-Shana-]
Niveau 10
04 décembre 2017 à 22:20:12

Le 04 décembre 2017 à 21:54:07 Arkwolf a écrit :
Attention je parle pas des téléphones low cost mais de ceux qui ont une version d'android qui date genre de plus de 7 ans [[sticker:p/1kkn]]

Je sais même pas si l'appli Android Market marche encore bien vu depuis, pour ceux qui ont pas la nouvelle appli Google Play :doute:

:d) A l'époque je crois que le google store existait même pas hein :noel:

TERMlNAT0R
Niveau 7
04 décembre 2017 à 22:59:19

Génial... voilà que maintenant des gens volent les maps des autres et les font passer pour leurs.
https://gamejolt.com/games/SlendermansPastDemoV1/299195

[-Shana-]
Niveau 10
04 décembre 2017 à 23:45:57

Le 04 décembre 2017 à 22:59:19 TERMlNAT0R a écrit :
Génial... voilà que maintenant des gens volent les maps des autres et les font passer pour leurs.
https://gamejolt.com/games/SlendermansPastDemoV1/299195

Comme ça me ferait chier d'être pris en flag de vol de contenue :hap:
Heureusement je prends que de l'open source au besoin [[sticker:p/1kki]]

TERMlNAT0R
Niveau 7
05 décembre 2017 à 06:05:27

Après, c'est une map que tout le monde peut modifier car elle n'est pas compilée en jeu stand-alone. Donc peut-être qu'elle est ré-utilisable, mais l'auteur du pack (et donc de la map) n'a jamais indiqué qu'on pouvait le faire. :(

Arkwolf
Niveau 22
05 décembre 2017 à 13:52:35

:d) A l'époque je crois que le google store existait même pas hein :noel:

Ouais c'est ce que je dis, ça s'appelait android market avant et je sais même pas ce que ça donne aujourd'hui du coup :noel:

Chaud le voleur de maps :hap: je me demande s'il va répondre :oui:

[-Shana-]
Niveau 10
05 décembre 2017 à 13:54:32

Le 05 décembre 2017 à 13:52:35 Arkwolf a écrit :

:d) A l'époque je crois que le google store existait même pas hein :noel:

Ouais c'est ce que je dis, ça s'appelait android market avant et je sais même pas ce que ça donne aujourd'hui du coup :noel:

Chaud le voleur de maps :hap: je me demande s'il va répondre :oui:

:d) Ouais me semble :hap:
D'ailleurs j'ai fais montrer le code de ta boite (de manière anonyme, np :oui: ) a mon professeur qui taff à l'armée et à quelques potes, ils ont bien rigolé :noel: !

"Après, c'est une map que tout le monde peut modifier car elle n'est pas compilée en jeu stand-alone. Donc peut-être qu'elle est ré-utilisable, mais l'auteur du pack (et donc de la map) n'a jamais indiqué qu'on pouvait le faire. :("
:d) Puis le mec n'a pas non plus crédité l'auteur dans tous les cas, donc ça reste pas cool :non: !

whiteapplex
Niveau 10
05 décembre 2017 à 14:26:55

de manière anonyme

T'avais peur que ton prof envoie les chars d'assaut pour faire cesser cette hérésie :noel: ?

[-Shana-]
Niveau 10
05 décembre 2017 à 14:48:24

Le 05 décembre 2017 à 14:26:55 whiteapplex a écrit :

de manière anonyme

T'avais peur que ton prof envoie les chars d'assaut pour faire cesser cette hérésie :noel: ?

Plus par respect pour l'entreprise de ArK et lui même :hap:

godrik
Niveau 27
05 décembre 2017 à 17:31:39

Le 03 décembre 2017 à 22:08:36 whiteapplex a écrit :
Quand des gens me disent de sauvegarder des "get" pour optimiser un programme :malade:
ET C'EST DU JAVA BORDEL ! DU JAVA ! OPTIMISER DU JAVA ! :malade: Pourquoi pas optimiser du python tant qu'on y est :malade:
C'est eux qui devraient aller à 42, mais ils vont sortir bac+5 hein :rire:
Bon dites moi honnêtement si je me trompe, je veux savoir, si sauvegarder un "get" c'est vraiment une bonne pratique de programmation en Java. Est-ce qu'on en est là ? Au point où il vaut mieux un

class A { B b; C c; void init(){b=c.getB()} ; void foo(){ b.foo(); } }

à un

class A { C c; void foo { c.getB().foo(); } }

C'est pas des choses qui seront optimisées avec 99% de chance en compilation OU qui valent pas le coup d'être optimisée (on parle d'un programme avec des milliers de lignes de codes et une interface graphique) ?

En general le compilateur ne peut pas optimiser ce genre de chose. Parceque le compilatur ne peut pas forcement savoir si C.b est sucesceptible de changer ou pas entre l'appel a A.init et l'appel a A.foo. Du coup il ne peut pas faire cette optimization. Est ce que l'optimisation est utile? Ca depend de l'implementation de C.getB(); Mais en general, ca sauve un dereferencement de pointeur. Donc potentiellement un lookup en TLB et un cache miss.

Si les structures de donnees de ton application sont tres creuse, tu peux rapidement perdre de la perf, surtout quand tu as des architectures immonde ou C.getB() appelle D.getB() qui appelle E.getB() etc. ce qui est une structure relativement classique en java.

godrik
Niveau 27
05 décembre 2017 à 17:33:22

Le 04 décembre 2017 à 17:38:26 whiteapplex a écrit :
Après pour contribuer à la discussion sur l'optimisation et la POO (en dehors de mon cas trivial et des cas de microoptimisation inutiles), j'ai lu ce commentaire récent (sous forme de thread de message twitter, ultra pratique) qui explique pas mal certaines contraintes d'optimisations:
https://twitter.com/etodd_/status/936422488787038208

Mais on reste dans les mêmes considérations, si t'en es au point d'optimiser des getters, t'as mal pensé ton application à la base.

Note que le message du mec suppose que le programme ne tiens pas en compte de la memoie.
le POO c'est un modele d'access au donne, pas un modele de representation des donnees.
Tu peux tres bien structurer tes donnees compacte en memoire et sans allocation dynamique, mais avoir une couche d'abstraction objet qui presente des absractions simple a comprendre et a utiliser.

Arkwolf
Niveau 22
05 décembre 2017 à 19:44:01

Le 05 décembre 2017 à 13:54:32 [-Shana-] a écrit :

Le 05 décembre 2017 à 13:52:35 Arkwolf a écrit :

D'ailleurs j'ai fais montrer le code de ta boite (de manière anonyme, np :oui: ) a mon professeur qui taff à l'armée et à quelques potes, ils ont bien rigolé :noel: !

Le compteur en JS ou l'entité PHP ? Le compteur il est légendaire il a fait le tour du monde un peu :rire: (lien pour ceux qui avaient pas vu : https://gist.github.com/Arkounay/eb9027c49a1d44ca9a100f4577f7bf31 )

Le pire c'est qu'il y a une nouvelle personne qui fait la même chose, le cancer se répand, je laisse tomber perso je vais chercher un autre taf pour 2018 sinon je pourrais pas progresser et je finirais blasé avec des gens comme ça :noel:

Plus par respect pour l'entreprise de ArK et lui même :hap:

De toute façon avec tous les projets mal fait / buggés qui sortent t'inquiète pas la réputation se fait d'elle même sans voir le code :rire:

Merci pour les explications Godrik :oui:

Sujet : [HS] Modération et Blabla.
News événement
Jouez et tentez de remporter des places de cinéma ainsi que des goodies du film Kraven The Hunter
   Retour haut de page
Consulter la version web de cette page