亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > PHP > 正文

PHP 隨機數 C擴展隨機數

2020-03-22 19:46:33
字體:
來源:轉載
供稿:網友
生成180000個隨機字符串,圖中是按照重復數量倒序排列,可以看到基本都有重復的。不過也是比較理想的。由于想提升一下自己的C語言能力,所以用C重新寫了一下隨機生成字符串。其中用到了隨機數函數srand(),rand();不過折騰一兩個小時,隨機數還是有問題。并發訪問時時間可能幾乎為同時,那么srand給的種子時間可以視為相同的。這樣就導致了,產生的隨機數也是一樣的。從而產生的隨機字符串也是一樣的。循環輸出隨機字符串,幾乎都是一模一樣的。后來想到了ukey,這個擴展可以實現唯一的ID,那么訪問都產生唯一的ID,是不是可以將這個ID作為種子時間。答案是肯定的。上圖是產生的隨機字符串,可以自定義長度。也同樣可以輸出只有數字的字符串。相較PHP所產生的隨機字符串重復率更低且速度更快。 PHP_FUNCTION(get_random__num_str) int length=8; if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "l", &length) == FAILURE) length=8; length++; int flag, i; char* string; __uint64_t timestamp = realtime(); __uint64_t retval; int len; char buf[128]; if (timestamp == 0ULL) { RETURN_FALSE; spin_lock(lock, pid); if (context- last_timestamp == timestamp) { context- sequence = (context- sequence + 1) & context- sequence_mask; if (context- sequence == 0) { timestamp = skip_next_millis(); } else { context- sequence = 0; /* Back to zero */ context- last_timestamp = timestamp; retval = ((timestamp - context- twepoch) context- timestamp_left_shift) | (context- datacenter_id context- datacenter_id_shift) | (worker_id context- worker_id_shift) | context- sequence; spin_unlock(lock, pid); //printf('%ld',retval); srand((unsigned)retval); //srand((unsigned) time(NULL )); if ((string = (char*) emalloc(length)) == NULL ) //myLog("Malloc failed!flag:14/n"); RETURN_NULL() ; for (i = 0; i length - 1; i++) flag = rand() % 3; switch (flag) case 0: string[i] = '1' + rand() % 5; break; case 1: string[i] = '2' + rand() % 7; break; case 2: string[i] = '0' + rand() % 10; break; default: string[i] = '9'; break;
if (context- last_timestamp == timestamp) { context- sequence = (context- sequence + 1) & context- sequence_mask; if (context- sequence == 0) { timestamp = skip_next_millis(); } else { context- sequence = 0; /* Back to zero */ context- last_timestamp = timestamp; retval = ((timestamp - context- twepoch) context- timestamp_left_shift) | (context- datacenter_id context- datacenter_id_shift) | (worker_id context- worker_id_shift) | context- sequence; spin_unlock(lock, pid); //printf('%ld',retval); srand((unsigned)retval); //srand((unsigned) time(NULL )); if ((string = (char*) emalloc(length)) == NULL ) //myLog("Malloc failed!flag:14/n"); RETURN_NULL() ; for (i = 0; i length - 1; i++) flag = rand() % 3; switch (flag) case 0: string[i] = 'A' + rand() % 26; break; case 1: string[i] = 'a' + rand() % 26; break; case 2: string[i] = '0' + rand() % 10; break; default: string[i] = 'x'; break;
上圖是C擴展生成18W隨機字符串所用的時間所用的服務器都是1G內存 雙核的阿里云服務器。只要在ukey中加入上如代碼就可以生產隨機字符串和隨機長度數字字符串,PHP唯一ID生成擴展ukey。php.ini的配置項:[ukey]ukey.datacenter = integerukey.worker = integerukey.twepoch = uint64datacenter配置項是一個整數, 用于設置數據中心;
worker配置項是一個整數, 用于設置數據中心的機器序號;
twepoch配置項是一個64位的整數, 用于設置時間戳基數, 此值越大, 生成的ID越小;安裝:$ cd ./ukey$ phpize$ ./configure$ make$ sudo make install Ukey提供3個有用的函數: ukey_next_id() -- 用于生成唯一ID
ukey_to_timestamp(ID) -- 用于將ID轉換成時間戳
ukey_to_machine(ID) -- 用于將ID轉換成機器信息使用實例:
$id = ukey_next_id();echo $id;$timestamp = ukey_to_timestamp($id);echo date('Y-m-d H:i:s', $timestamp);$info = ukey_to_machine($id)var_dump($info);以上就是本文的全部內容,希望對大家的學習有所幫助。PHP教程

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产一区二区三区三区在线观看| 成人在线视频网站| 日本午夜在线亚洲.国产| 国产不卡av在线| 国产精品国产三级国产aⅴ浪潮| 欧美激情精品久久久久久免费印度| 成人免费淫片aa视频免费| 日韩视频第一页| 日韩精品视频免费在线观看| 欧美另类在线播放| 91嫩草在线视频| 国产精品久久久久秋霞鲁丝| 亚洲视频在线观看视频| 免费av在线一区| 欧美日韩亚洲网| 色狠狠久久aa北条麻妃| 91天堂在线观看| 2019亚洲日韩新视频| 狠狠躁夜夜躁人人爽超碰91| 久久亚洲精品一区| 中国日韩欧美久久久久久久久| 中文字幕日韩在线播放| 欧美日韩午夜剧场| 欧美大码xxxx| 日韩欧美在线中文字幕| 亚洲国产91精品在线观看| 国产精品在线看| 国产亚洲精品va在线观看| 欧美日韩亚洲系列| 一区二区三区动漫| 国产精品美女www爽爽爽视频| 欧美国产日本在线| 97视频com| 国产成人福利网站| 日韩免费av片在线观看| 亚洲第一区中文字幕| 欧美一级淫片播放口| 一二美女精品欧洲| 亚洲第一色在线| 91精品国产沙发| 久久精品国产91精品亚洲| 国产日产欧美精品| 成人黄色影片在线| 国内精品视频一区| 久久精品国产亚洲| 久久久爽爽爽美女图片| 国产精品爱久久久久久久| 国产日韩专区在线| 国产视频欧美视频| 国产网站欧美日韩免费精品在线观看| 8x海外华人永久免费日韩内陆视频| 91精品在线观看视频| 色综合天天综合网国产成人网| 在线精品国产成人综合| 九九热视频这里只有精品| 国产精品福利在线观看网址| 国产极品精品在线观看| 日韩av不卡在线| 国产精自产拍久久久久久蜜| xx视频.9999.com| 韩国三级电影久久久久久| 日韩精品视频中文在线观看| www.亚洲成人| 国产精品福利网站| 91国产视频在线播放| 色偷偷91综合久久噜噜| 欧美大片在线影院| 亚洲成人国产精品| 在线观看日韩www视频免费| 另类图片亚洲另类| 欧美午夜无遮挡| 日韩欧美在线观看视频| 1769国内精品视频在线播放| 欧美成人激情视频免费观看| 欧美孕妇孕交黑巨大网站| 精品久久久视频| 国产一区香蕉久久| 亚洲精品v天堂中文字幕| 欧美激情三级免费| 欧洲日本亚洲国产区| 国产日韩欧美夫妻视频在线观看| 欧美电影免费观看高清| 亚洲男人av电影| 亚洲国产精品电影在线观看| 国产a∨精品一区二区三区不卡| 国内精品模特av私拍在线观看| 国产精品日韩av| 久久久久久久爱| 国产精品普通话| 国产一区二区三区中文| 国产精品羞羞答答| 久久精品99久久久香蕉| 91中文字幕在线| 久久综合色88| 久久久久久久久中文字幕| 麻豆成人在线看| 日韩av毛片网| 亚洲香蕉在线观看| 中文字幕精品www乱入免费视频| 992tv成人免费视频| 北条麻妃一区二区三区中文字幕| 中文字幕亚洲欧美在线| 久久久999精品视频| 国产欧美亚洲视频| 亚洲美女免费精品视频在线观看| 91日韩在线视频| 亚洲国产欧美久久| 狠狠躁夜夜躁人人爽超碰91| 九九精品在线播放| 欧美日韩中文字幕| 秋霞午夜一区二区| 亚洲欧美日韩精品久久亚洲区| 中文字幕久热精品视频在线| 日韩在线中文字| 国产精品户外野外| 亚洲福利视频在线| 2020欧美日韩在线视频| 欧美网站在线观看| 日本一区二区三区在线播放| 亚洲国产精品va在线看黑人| 日韩免费中文字幕| 日韩亚洲在线观看| 91黑丝高跟在线| 国产在线精品成人一区二区三区| 亚洲一区二区在线播放| 欧美极品美女视频网站在线观看免费| 欧美中文字幕在线观看| 91视频免费在线| 欧美成人免费全部观看天天性色| 欧美激情免费视频| 欧美午夜精品久久久久久浪潮| 一区二区三区回区在观看免费视频| 成人在线视频福利| 欧美国产日韩一区二区在线观看| 亚洲欧洲午夜一线一品| 日韩精品视频在线免费观看| 国产成人精品久久二区二区91| 夜夜嗨av一区二区三区免费区| 成人精品视频久久久久| 国产精品美女在线观看| 美女视频久久黄| 中文字幕久久亚洲| 日韩福利视频在线观看| 欧美孕妇毛茸茸xxxx| 国产精品白嫩美女在线观看| 91精品国产99久久久久久| 欧美激情视频三区| 中文字幕av一区| 国产一区二区三区在线观看网站| 亚洲欧美日韩在线一区| 亚洲欧美日韩一区二区三区在线| www.美女亚洲精品| 欧美日韩国产色| 欧美电影免费在线观看| www.xxxx欧美| 亚洲夜晚福利在线观看| 久久久久久尹人网香蕉| 国产一区二中文字幕在线看| www.久久久久久.com| 亚洲精品动漫久久久久| 久久躁狠狠躁夜夜爽| 久久在精品线影院精品国产| 91九色综合久久| 日本一欧美一欧美一亚洲视频|