|
Mailing list
|
|
Abonnez-vous à la
mailing
list pour être prévenu des mises à jour.
|
|
|
10 derniers
|
[24: 1] tombston
[26: 0] poitpoit
[17: 0] mathben
[11: 1] fibonaci
[09: 0] Layus
[28: 1] sherlock
[26: 0] Chakaa
[23: 0] obidasin
[03: 2] neox5452
[01: 1] phobos
|
|
|
Partenaires
|
Tastalian -
Programmation de jeux C/C++ et libs
|
GLinFrench -
Tutoriels, docs et forums, sur la programmation graphique
|
Ultrafil -
Tutoriels et sources OpenGL et C++
|
FredDec -
Tutoriels OpenGL
Proposez un partenariat avec votre site.
|
|
|
|
Astuce
|
|
PHP : Sécurité
Si vous avez des fichiers PHP inclus (qui ne correspondent pas à une page mais uniquement à du code ou à des données), donnez-leur l'extension .php pour être sur qu'ils ne soient pas affichés, et placez-les dans un répertoire à part, lui-même protégé (par un .htaccess sous Apache).
- Allergy -
|
|
|
|
Astuce
|
|
Proposer une astuce
Vous pouvez proposer une astuce si vous êtes authentifié
- Allergy -
|
|
|
|
Astuce
|
|
[ASM] Initialisation
En assembleur, au lieu d'initialiser le contenu d'un registre à 0 par un "MOV AX, 0", utilisez plutôt un "XOR AX, AX" beaucoup moins couteux en temps machine
- mephisto -
|
|
|
|
Astuce
|
|
[ASM] Lecture de header
Si vous devez lire un fichier avec pleins de champs dans l'entete, déclarez vos variables dans la src à la fin, en respectant l'ordre et la taille. A la lecture du fichier (fct 3fh int 21h), faites un "lea DX, 1_ere_variable_de_l_entete". Ainsi, toutes les variables seront remplies automatiquement, en faisant coïncider l'addresse du fichier en memoire et l'addresse des données du programme.
- mephisto -
|
|
|
|
Astuce
|
|
[ASM] Optimisation d'operations
Si vous voulez multiplier ou diviser la valeur d'un registre par un multiple de 2, utilisez plutôt un décalage de bits. Pour une multiplication, utilisez SHL (SHR pour une division) avec la puissance de 2. Exemple: pour multiplier AX par 8, il suffit de faire "SHL AX, 3" (car 8 = 2^3). C'est moins couteux en temps machine. Dès que possible, toujours utiliser les opérations sur les bits.
- mephisto -
|
|
|
|
Astuce
|
|
Vers une meilleur optimisation du code C++ par le compilateur ...
Une petite astuce que j'ai appris au LRDE pour que le compilo optimise mieux le code (mais ca compile plus lentement, faut savoir ce que l'on veut ...):
On ne fait plus de .h et .cpp on fait des .hh et .hxx ... exemple:
dans le .hh les prototypes etc ...
#ifndef __FOO_HH
#define __FOO_HH
// put prototype here :)
#include "foo.hxx"
#endif // __FOO_HXX
Et le foo.hxx:
#ifndef __FOO_HXX
#define __FOO_HXX
// code here
#endif // __FOO_HXX
Comme vous le voyez c'est comme si on codait tout dans les .h, mais on fait deux fichier pour plus de lisiblité. Ce qui va se passer apres c'est que au final apres le preprocessing du compilo il va y avoir un ENORME source code qui contient tout, ce qui permet au compilo bcp d'optimisation d'inling et co qui ne sont pas possible en compilation separé.
Bon bien sur on perd la compilation separé, faut faire un choix :)
Sinon on peut faire un intermediaire genre appliquer cela mais par module/lib, pour que chaque partie soit bien optimisé.
Best Regards
- ChoJin -
|
|
|
|
Astuce
|
|
optimiser les pipes du pentium
Pour optimiser un code assembleur sur pentium,
il faut entrelacer le code. exemple :
Mov EBX,140h
Mul EBX
Add EDI,ECX
sera remplace par :
Mov EBX,140h
Add EDI,ECX
Mul EBX
- Forthman -
|
|
|
|
Astuce
|
|
[C/C++/Java/...] conditions simples
plutot que d'ecrire :
if (cond) { var = val1; } else { var = val2; }
vous pouvez compacter ceci en :
var = (cond ? val1 : val2 );
exemple simple "valeur absolue" :
float abs( float x )
{
float a = (x<0 ? -x : x);
return a;
}
- gore -
|
|
|
|
Astuce
|
|
Savoir ou le code plante...
Sous Visual C++, par défaut, la build "release" ne contient pas d'infos de debuggage, c'est assez génant, l'utilisation de ces infos ne prends pas trop de place dans l'exe (quelques Ko) et crée un gros fichier *.pdb dans le dossier de build, à l'aide de ce fichier, vous pouvez retrouver la fonction responsable d'un plantage dans un de vos programmes! Pensez donc à activer cette option, et... à sauvegarder le fichier pdb correspondant au binaire que vous avez distribué.
- Tene -
|
|
|
|
Astuce
|
|
Warning avec la STL ?
Il arrive que lorsque vous utilisez la STL (sous Visual tout du moins) vous obteniez une longue liste de Warning C4786 - qu'est ce donc et comment les enlever ? c'est un avertissement sur la troncation d'identifiant trop long. On les enleve en rajoutant ca dans le code:
#pragma warning (disable:4786)
- Absolute0 -
|
|
|
|
Astuce
|
|
OpenGL: glDrawPixels, glCopyPixels
Il peut arriver que vous ayez besoin d'utiliser l'une de ces fonctions pour afficher directement à l'écran une image. Mais il convient de faire attention à une ou deux choses quand vous les utilisez, car sinon les fps tomberont très très vite jusqu'à 2-3 fps suivant les config :). A quoi faut-il faire attention ? A quelque chose de très simple: il faut désactiver le depth test grâce à "glDisable(GL_DEPTH_TEST);" avant d'utiliser ces fonctions :). Et vous verrez que ces fonctions peuvent être utiles :).
- Absolute0 -
|
|
|
|
Astuce
|
|
[python] tableaux et tuples
Si votre liste de données contient moins de 50 (environ) éléments, il est conseillé d'utiliser un tuple. Par contre, si elle en contient plus, un tableau sera beausoup plus rapide. A titre d'exemple, créez un tuple et un tableau vide, et insérez dans chacun 100.000 éléments [avec tableau.append(elt) et tuple += (elt, ) ]. Vous serez surpris...
- Allergy -
|
|
| |
|
|
Participer
|
Vous pouvez participer à ce site de différentes façons.
Bien sûr, en écrivant une doc, un tutorial ou une astuce, mais aussi en
créant un nouveau thème, en dessinant un logo ou une icone.
|
|
|