Thomas Cort wrote:
> As I said on IRC, I've been experimenting with my own hand evaluator 
> using prime factorization (no bit masks or bit shifting), and I was 
> going to write a benchmark to compare it with poker-eval. Well, I 
> wrote the benchmark and poker-eval is about 40x faster at enumerating 
> all 5 card poker hands.
>
> A few reasons for this...
>  * I tested on x86. Much of my implementation does calculations on 
> int64_t values which is probably sub-optimal on 32-bit architectures.
>  * my implementation was designed for use with Internet Poker Protocol 
> (IPP), so my eval function returns the results as a formatted IPP 
> messages.
>  * my eval function allocates a new IPP message every time its called 
> which the benchmark has to free. 2598960+ calls to malloc and free can 
> really slow things down ;)
>
:-) One of the reasons may also be the use of division, I guess. Please 
send me your ssh key and I'll create a 64bits machine (AMD64) so that 
you can do tests.
> // libtinypoker r3830
>
> $ time ./src/test/testEnumerateAllHands
> +-----------------+----------+
> | Straight flush  |       40 |
> | Four of a kind  |      624 |
> | Full house      |     3744 |
> | Flush           |     5108 |
> | Straight        |    10200 |
> | Three of a kind |    54912 |
> | Two Pair        |   123552 |
> | One Pair        |  1098240 |
> | High Card       |  1302540 |
> +-----------------+----------+
> | Total           |  2598960 |
> +-----------------+----------+
>
> real    0m5.731s
> user    0m5.672s
> sys    0m0.016s
>
> // poker-eval-134.0
>
> $ time ./examples/five_card_hands
> NoPair  :  1302540
> OnePair :  1098240
> TwoPair :  123552
> Trips   :  54912
> Straight:  10200
> Flush   :  5108
> FlHouse :  3744
> Quads   :  624
> StFlush :  40
>
> real    0m0.143s
> user    0m0.080s
> sys    0m0.064s
>


_______________________________________________
Pokersource-users mailing list
[email protected]
https://mail.gna.org/listinfo/pokersource-users

Reply via email to