I make some small test. http://martin.m-core.net/misc/php/dehex.c - source code
cc dehex.c; for i in `seq 1 1000`; do ./a.out >> dehex.log; done http://martin.m-core.net/misc/php/dehex.log - results I ignore values greater than 4e9. And here is summary: http://martin.m-core.net/misc/php/dehex.php Source of PHP script: http://martin.m-core.net/misc/php/dehex.phps So, m1 is very slow, but other ones are faster. Martin Majlis On 25/05/07, Martin Majlis <[EMAIL PROTECTED]> wrote:
Just small refactoring. Replacing self-made function with functions from standard headers. Index: JSON_parser.c =================================================================== RCS file: /repository/php-src/ext/json/JSON_parser.c,v retrieving revision 1.1.2.8 diff -u -u -r1.1.2.8 JSON_parser.c --- JSON_parser.c 24 May 2007 22:37:59 -0000 1.1.2.8 +++ JSON_parser.c 24 May 2007 23:41:11 -0000 @@ -29,6 +29,8 @@ #include "JSON_parser.h" #include <stdio.h> +#include <math.h> +#include <ctype.h> #define true 1 #define false 0 @@ -259,18 +261,10 @@ static int dehexchar(char c) { - if (c >= '0' && c <= '9') - { - return c - '0'; - } - else if (c >= 'A' && c <= 'F') - { - return c - ('A' - 10); - } - else if (c >= 'a' && c <= 'f') - { - return c - ('a' - 10); - } + if (isxdigit(c)) + { + return strtol(&c, NULL, 16); + } else { return -1;
-- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php