alrj.org
Articles de programmation en français


Menu
Home
Docs
[143]
M'écrire

Login

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.

Hébergés
antoche
arkel
graffproject
grapheeasy
gtkwine
landcard
myoe
nikopol0
orion3d
sherlock
vprat

Infos
Code : Allergy
Logo : Gore
Statistiques
Netcraft

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.