Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#526 Le 22/04/2010, à 23:11

gnuuat

Re : ..:: Topic des Codeurs Couche-Tard [0] ::..

L'optimisation ici n'est pas faite au niveau de l'assembleur, mais bien de l'écriture. si on affiche caractères par caractères, on fait plusieurs appels à write. Si on écrit un buffer d'un coup, on fait appel une seule fois à write.
Je trouvais ça inutile les 128 caractères, mais puisque vous les demandez :

#include <stdlib.h>
#include <stdio.h>
#include "my.h"

int             main(void)
  {
    char        buff[BUFSIZ];
    int         ctr;

    ctr = -1;
    while (++ctr < BUFSIZ)
      {
        if (ctr < 128)
            buff[ctr] = ctr;
        else
          buff[ctr] = '\0';
      }
    my_putstr(buff);
    return (EXIT_SUCCESS);
  }

smile
Qu'y a-t-il d'obscur dans ce code, par rapport à un code en brainfuck ? tongue

edit : pylade, je comprends pas ta question O_o .

Dernière modification par gnuuat (Le 22/04/2010, à 23:11)


Bisouland : embrassez les tous !
Volez les points d'amour de vos adversaires en les embrassant, dans ce jeu gratuit par navigateur !

Hors ligne

#527 Le 22/04/2010, à 23:15

grim7reaper

Re : ..:: Topic des Codeurs Couche-Tard [0] ::..

gnuuat a écrit :

L'optimisation ici n'est pas faite au niveau de l'assembleur, mais bien de l'écriture. si on affiche caractères par caractères, on fait plusieurs appels à write. Si on écrit un buffer d'un coup, on fait appel une seule fois à write.

Et qui te dit que le compilo ne vas pas remplacer les multiples appels à write par un seul ?
Ça me paraît largement envisageable dans un cas simple comme celui-ci.

Hors ligne

#528 Le 22/04/2010, à 23:18

gnuuat

Re : ..:: Topic des Codeurs Couche-Tard [0] ::..

Si je suis aussi sûr de moi, c'est parce qu'on l'a testé de nombreuses fois ^^' .
Donc à moins de mettre des flags d'optimisations spécifiques (il doit y en avoir, mais pas sûr), ça ne se fait pas tout seul.
Et puis pour être sûr de ce que fait ton code au final, autant le coder tout de suite plutôt que d'attendre que le compilo le fasse à ta place. Lui, il est là pour remplacer les strlen static, car ça, tu ne peux pas forcement les prévoirs wink .


Bisouland : embrassez les tous !
Volez les points d'amour de vos adversaires en les embrassant, dans ce jeu gratuit par navigateur !

Hors ligne

#529 Le 22/04/2010, à 23:27

grim7reaper

Re : ..:: Topic des Codeurs Couche-Tard [0] ::..

Oui je viens de vérif, effectivement dans ce cas là gcc ne le fais pas (j'ai pas le compilo Intel sous là main pour tester) smile.

gnuuat a écrit :

Lui, il est là pour remplacer les strlen static, car ça, tu ne peux pas forcement les prévoirs wink .

Soit c'est une blague, soit tu ignores tout des capacités d'optimisation d'un compilateur (c'est très loin de se limiter à ça).

Hors ligne

#530 Le 22/04/2010, à 23:32

gnuuat

Re : ..:: Topic des Codeurs Couche-Tard [0] ::..

grim7reaper a écrit :

Oui je viens de vérif, effectivement dans ce cas là gcc ne le fais pas (j'ai pas le compilo Intel sous là main pour tester) smile.

gnuuat a écrit :

Lui, il est là pour remplacer les strlen static, car ça, tu ne peux pas forcement les prévoirs wink .

Soit c'est une blague, soit tu ignores tout des capacités d'optimisation d'un compilateur (c'est très loin de se limiter à ça).

J'exagère très largement. Ne t'inquiètes pas, je ne suis pas inconscient du rôle du compilateur, je sais très bien qu'il ne fait pas que "transformer du code en binaire", et j'ai pas mal touché les flags d'optimisations pour certains projets (et aussi sous Gentoo) pour savoir que gcc ne fait pas que remplacer du strlen.

Je te titille c'est tout wink .


Bisouland : embrassez les tous !
Volez les points d'amour de vos adversaires en les embrassant, dans ce jeu gratuit par navigateur !

Hors ligne

#531 Le 22/04/2010, à 23:36

grim7reaper

Re : ..:: Topic des Codeurs Couche-Tard [0] ::..

C'est bien ce que je pensais, mais merci de le confirmer comme ça il n'y a pas de doutes smile

Hors ligne

#532 Le 22/04/2010, à 23:38

gnuuat

Re : ..:: Topic des Codeurs Couche-Tard [0] ::..

Pour calmer le jeu : un blog sans authentification en 5 minutes avec CakePHP :
Deux tables :
* users { id, name}
* tickets { id, title, message, user_id}

Controller User :
Model Ticket

<?php
class UsersController extends AppController {
	var $name = 'Users';
	var $scaffold;
}

Controller Ticket :
Model Ticket

<?php
class TicketsController extends AppController {
	var $name = 'Tickets';
	var $scaffold;
}

Model Ticket

<?php
class Ticket extends AppModel {
	var $name = 'Ticket';
	var $belongsTo = 'User';
}

Model User

<?php
class User extends AppModel {
	var $name = 'User';
	var $hasMany = 'Ticket';
}

Et voilà, vous avez un CRUD 100% giga complet sur les tickets et utilisateurs, avec tout ce qu'il faut (des liens automatiques, des formulaires tout fait).
Un framework MVC à manger : CakePHP !

edit : bon, après, si on veut un vrai site, faut coder un peu plus, mais c'est vraiment chouette smile .

Dernière modification par gnuuat (Le 22/04/2010, à 23:41)


Bisouland : embrassez les tous !
Volez les points d'amour de vos adversaires en les embrassant, dans ce jeu gratuit par navigateur !

Hors ligne

#533 Le 22/04/2010, à 23:52

grim7reaper

Re : ..:: Topic des Codeurs Couche-Tard [0] ::..

The cake is a lie.
big_smile

Hors ligne

#534 Le 23/04/2010, à 00:15

Pylades

Re : ..:: Topic des Codeurs Couche-Tard [0] ::..

Au fait, ça représente quoi ton avatar ?

(Tiens, ça me fait penser qu’il faudrait que je m’en trouve un moins pourri).


“Any if-statement is a goto. As are all structured loops.
“And sometimes structure is good. When it’s good, you should use it.
“And sometimes structure is _bad_, and gets into the way, and using a goto is just much clearer.”
                Linus Torvalds – 12 janvier 2003

Hors ligne

#535 Le 23/04/2010, à 00:21

grim7reaper

Re : ..:: Topic des Codeurs Couche-Tard [0] ::..

Le mien ?

Hors ligne

#536 Le 23/04/2010, à 00:35

nesthib

Re : ..:: Topic des Codeurs Couche-Tard [0] ::..

grim7reaper a écrit :

The cake is a lie.
big_smile

follow the white rabbit…


GUL Bordeaux : GirollServices libres : TdCT.org
Hide in your shell, scripts & astuces :  applications dans un tunnelsmart wgettrouver des pdfinstall. auto de paquetssauvegarde auto♥ awk
  ⃛ɹǝsn xnuᴉꞁ uʍop-ǝpᴉsdn

Hors ligne

#537 Le 23/04/2010, à 00:40

grim7reaper

Re : ..:: Topic des Codeurs Couche-Tard [0] ::..

Hum, ce n'est plus la même référence là tongue.

Tu as encore un nouvel avatar, pour le long terme celui-ci ?

Hors ligne

#538 Le 23/04/2010, à 00:50

nesthib

Re : ..:: Topic des Codeurs Couche-Tard [0] ::..

grim7reaper a écrit :

Hum, ce n'est plus la même référence là tongue.

oui je sais mais je trouvais que ça allait bien à la suite smile

grim7reaper a écrit :

Tu as encore un nouvel avatar, pour le long terme celui-ci ?

peut-être jusqu'à notre install-party (ou pas)


GUL Bordeaux : GirollServices libres : TdCT.org
Hide in your shell, scripts & astuces :  applications dans un tunnelsmart wgettrouver des pdfinstall. auto de paquetssauvegarde auto♥ awk
  ⃛ɹǝsn xnuᴉꞁ uʍop-ǝpᴉsdn

Hors ligne

#539 Le 23/04/2010, à 01:02

Grünt

Re : ..:: Topic des Codeurs Couche-Tard [0] ::..

Plop.


Red flashing lights. I bet they mean something.

Hors ligne

#540 Le 23/04/2010, à 01:03

nesthib

Re : ..:: Topic des Codeurs Couche-Tard [0] ::..

alors ǤƦƯƝƬ on ploppe ? big_smile


GUL Bordeaux : GirollServices libres : TdCT.org
Hide in your shell, scripts & astuces :  applications dans un tunnelsmart wgettrouver des pdfinstall. auto de paquetssauvegarde auto♥ awk
  ⃛ɹǝsn xnuᴉꞁ uʍop-ǝpᴉsdn

Hors ligne

#541 Le 23/04/2010, à 01:09

Кຼزດ

Re : ..:: Topic des Codeurs Couche-Tard [0] ::..

nesthib a écrit :

alors ǤƦƯƝƬ on ploppe ? big_smile

Non, on proteste mad


dou

Hors ligne

#542 Le 23/04/2010, à 01:13

nesthib

Re : ..:: Topic des Codeurs Couche-Tard [0] ::..


GUL Bordeaux : GirollServices libres : TdCT.org
Hide in your shell, scripts & astuces :  applications dans un tunnelsmart wgettrouver des pdfinstall. auto de paquetssauvegarde auto♥ awk
  ⃛ɹǝsn xnuᴉꞁ uʍop-ǝpᴉsdn

Hors ligne

#543 Le 23/04/2010, à 03:08

grim7reaper

Re : ..:: Topic des Codeurs Couche-Tard [0] ::..

BN World !

Hors ligne

#544 Le 23/04/2010, à 03:24

samυncle

Re : ..:: Topic des Codeurs Couche-Tard [0] ::..

Plop


Hello world

Hors ligne

#545 Le 23/04/2010, à 07:24

gnuuat

Re : ..:: Topic des Codeurs Couche-Tard [0] ::..

int             my_strlen(char *str)
  {
    int         len;

    len = -1;
    if (str != NULL)
      while (str[++len] != '\0');
    return (len);
  }

++

;; my_strlen

;; Exported and imported symbols.
global my_strlen

section .text

my_strlen:
    ;;Prolog.
    push ebp
    mov ebp, esp
    ;; Retreive arguments.
    mov edx, ebp
    add edx, 8
    ;; Counter initilization.
    xor ecx, ecx
.len:
    cmp byte [edx], 0
    je .end
    inc edx
    inc ecx
    jmp .len
.end:
    mov eax, ecx
    ;; Epilog.
    leave
    ret

section .data
section .bss

Dernière modification par gnuuat (Le 23/04/2010, à 08:12)


Bisouland : embrassez les tous !
Volez les points d'amour de vos adversaires en les embrassant, dans ce jeu gratuit par navigateur !

Hors ligne

#546 Le 23/04/2010, à 08:58

helly

Re : ..:: Topic des Codeurs Couche-Tard [0] ::..

tain mon classement !! mad


Archlinux-wmii-dwb.
Un problème résolu ? Faites le savoir en mettant [résolu] à côté du titre de votre topic.
Un problème non résolu ? Faites le savoir en insultant ceux qui cherchent à vous aider.
Un site bleu super remasterised©, un wiki cherchant des volontaires pour traduire un site.

Hors ligne

#547 Le 23/04/2010, à 09:54

\\Ouranos//

Re : ..:: Topic des Codeurs Couche-Tard [0] ::..

helly is back ! \o/


Ubuntu facile, c'est :
- Dire "Bonjour"
- Lire la doc et les règles du forum avant de poster. Savoir poser une question intelligemment.
- Mettre des balises url autour des liens et un tiret à su.

Hors ligne

#548 Le 23/04/2010, à 10:02

Pylades

Re : ..:: Topic des Codeurs Couche-Tard [0] ::..

helly a écrit :

tain mon classement !! mad

roll

grim7reaper a écrit :

Le mien ?

Oui.

Dernière modification par Pylade (Le 23/04/2010, à 10:03)


“Any if-statement is a goto. As are all structured loops.
“And sometimes structure is good. When it’s good, you should use it.
“And sometimes structure is _bad_, and gets into the way, and using a goto is just much clearer.”
                Linus Torvalds – 12 janvier 2003

Hors ligne

#549 Le 23/04/2010, à 10:04

grim7reaper

Re : ..:: Topic des Codeurs Couche-Tard [0] ::..

helly a écrit :

tain mon classement !! mad

Bon retour parmis les couches-tard !

Héhé, c'est ça d'être absente, moi j'ai bien progressé ces 2 derniers jours big_smile.

Enfin, c'est pas comme le tcdt, ici on peut facilement rattraper les premiers.

@gnuuat : ton strlen, c'est l'implémentation basique, avec comparaison de chaque caractère ?
Si tu veux remplacer le strlen standard c'est ton choix, mais alors remplace-le par quelque chose de plus efficace (là c'est beaucoup moins optimisé que la fonction standard qui elle teste par paquet de 4 bytes).

size_t strlen (str) const char *str;
{
  const char *char_ptr;
  const unsigned long int *longword_ptr;
  unsigned long int longword, himagic, lomagic;

  for (char_ptr = str; ((unsigned long int) char_ptr & (sizeof (longword) - 1)) != 0; ++char_ptr)
    if (*char_ptr == '\0')
      return char_ptr - str;

  longword_ptr = (unsigned long int *) char_ptr;
  himagic = 0x80808080L;
  lomagic = 0x01010101L;
  if (sizeof (longword) > 4)
  {
      himagic = ((himagic << 16) << 16) | himagic;
      lomagic = ((lomagic << 16) << 16) | lomagic;
  }
  if (sizeof (longword) > 8)
    abort ();

  for (;;)
  {
      longword = *longword_ptr++;

      if (((longword - lomagic) & ~longword & himagic) != 0)
      {
          const char *cp = (const char *) (longword_ptr - 1);

	  if (cp[0] == 0)
	    return cp - str;
	  if (cp[1] == 0)
	    return cp - str + 1;
	  if (cp[2] == 0)
	    return cp - str + 2;
	  if (cp[3] == 0)
	    return cp - str + 3;
	  if (sizeof (longword) > 4)
	  {
	      if (cp[4] == 0)
		return cp - str + 4;
	      if (cp[5] == 0)
		return cp - str + 5;
	      if (cp[6] == 0)
		return cp - str + 6;
	      if (cp[7] == 0)
		return cp - str + 7;
	  }
	}
    }
}
libc_hidden_builtin_def (strlen)

@Pylade : mon avatar est tout bêtement un dessin de la Grim Reaper (nom anglais de la Grande Faucheuse). Je l'avais trouvé il y à quelques années lorsque je me cherchais un avatar en rapport avec mon pseudo (qui n'était pas grim7reaper à l'époque, mais appartenait au même champ lexical), j'ai alors tapé "grim reaper" dans Google image (quelle époque ! Maintenant je n'utilise plus Google, ou alors très rarement) et je l'ai vu. J'avais bien aimé les ailes, c'est un truc que l'on voit rarement sur la Mort et puis j'ai vraiment aimé ce qui se dégageais de ce dessin donc je l'ai pris.
D'ailleurs ça fait un moment que je me dis qu'il faudrait que je change d'avatar, pour avoir un truc vraiment à moi (ou au moins sous Creative Common) et je vais probablement le faire bientôt (quand j'aurais trouvé un digne remplaçant).

Dernière modification par grim7reaper (Le 23/04/2010, à 10:13)

Hors ligne

#550 Le 23/04/2010, à 10:58

helly

Re : ..:: Topic des Codeurs Couche-Tard [0] ::..

Tiens au fait j'ai suivi votre conseil et je me suis fait(e?) acheter le pavé (900pages hmm) de stroustrup smile


Archlinux-wmii-dwb.
Un problème résolu ? Faites le savoir en mettant [résolu] à côté du titre de votre topic.
Un problème non résolu ? Faites le savoir en insultant ceux qui cherchent à vous aider.
Un site bleu super remasterised©, un wiki cherchant des volontaires pour traduire un site.

Hors ligne