成人怡红院-成人怡红院视频在线观看-成人影视大全-成人影院203nnxyz-美女毛片在线看-美女免费黄

站長資訊網
最全最豐富的資訊網站

面試官:列舉幾種PHP拓展的實現手段及其性能比較?

關于 PHP 擴展的幾種實現手段

1.php 原生擴展開發 c 語言,注:【ext_skel.php】腳本創建

2.zephir

3.php-cpp

4.php-x

5.cgo

  • 封裝 zendapi 模式

  • CGO 嵌套 C 和 GO 代碼,用 GO 去編譯了 php 擴展骨架和 GO 的具體實現

等。。。不限上面幾種方式。

圍繞【zephir,cgo,PHP 開啟 JIT】4 種模式下,通過斐波那契數列計算性能,來查看運行效果。

zephir 代碼生成擴展

//Main 類 final class Zimuge {   public static function calcFibonacci(int i){       if (i < 2) {           return i;       }       return self::calcFibonacci(i - 1) + self::calcFibonacci(i - 2);   }
編譯安裝 zephir build

cgo 代碼生成擴展

package main /* #ifdef HAVE_CONFIG_H #include "config.h" #endif #include "php.h" #include "php_ini.h" #include "ext/standard/info.h" static int le_go2php; PHP_MINIT_FUNCTION(go2php) {     return SUCCESS; } PHP_MSHUTDOWN_FUNCTION(go2php) {     return SUCCESS; } PHP_RINIT_FUNCTION(go2php) {     return SUCCESS; } PHP_RSHUTDOWN_FUNCTION(go2php) {     return SUCCESS; } PHP_MINFO_FUNCTION(go2php) {     php_info_print_table_start();     php_info_print_table_header(2, "go2php support", "enabled");     php_info_print_table_end(); } PHP_FUNCTION(go2php_print) {     zend_long a,b;     ZEND_PARSE_PARAMETERS_START(1, 1)         Z_PARAM_LONG(a)     ZEND_PARSE_PARAMETERS_END();     b = calcFib(a);     RETURN_LONG(b); } ZEND_BEGIN_ARG_INFO(null, 0) ZEND_END_ARG_INFO() const zend_function_entry go2php_functions[] = {     PHP_FE(go2php_print, null)     PHP_FE_END }; zend_module_entry go2php_module_entry = {     STANDARD_MODULE_HEADER,     "go2php",     go2php_functions,     PHP_MINIT(go2php),     PHP_MSHUTDOWN(go2php),     PHP_RINIT(go2php),     PHP_RSHUTDOWN(go2php),     PHP_MINFO(go2php),     "0.1.0",     STANDARD_MODULE_PROPERTIES }; #ifdef COMPILE_DL_GO2PHP ZEND_GET_MODULE(go2php) #endif */ import "C" func main() {}
package main import "C" //export calcFib func calcFib(i int) int {     if i < 2 {         return i     }     return calcFib(i-1)+calcFib(i-2) }

編譯&鏈接

CGO_CFLAGS="-g  -I`/root/download/php8/bin/php-config --include-dir`  -I`/root/download/php8/bin/php-config --include-dir`/main  -I`/root/download/php8/bin/php-config --include-dir`/TSRM  -I`/root/download/php8/bin/php-config --include-dir`/Zend  -I`/root/download/php8/bin/php-config --include-dir`/ext  -I`/root/download/php8/bin/php-config --include-dir`/ext/date/lib  -DHAVE_CONFIG_H" CGO_LDFLAGS="-Wl,--export-dynamic -Wl,--unresolved-symbols=ignore-all" go build -p 1 -gcflags "-l" -buildmode=c-shared -o go2php.so

測試用 php 腳本代碼

<?php const COUNT = 30; function calcFibonacci(int $i): int {     if ($i < 2) {         return $i;     }     return calcFibonacci($i - 1) + calcFibonacci($i - 2); } // CGO 速度 $startTime = microtime(true); for($i = 1; $i <= COUNT; $i++) {     if($i != COUNT) {         go2php_print($i);     }else {         echo go2php_print($i)."n";     } } $time = microtime(true) - $startTime; echo "CGO: {$time} 秒n"; //zephir 速度 $startTime = microtime(true); for($i = 1; $i <= COUNT; $i++) {     if($i != COUNT) {         LszZimuge::calcFibonacci($i);     }else {         echo LszZimuge::calcFibonacci($i)."n";     } } $time = microtime(true) - $startTime; echo "zephir: {$time} 秒n"; // PHP JIT 速度 $startTime = microtime(true); for($i = 1; $i <= COUNT; $i++) {     if($i != COUNT) {         calcFibonacci($i);     }else {         echo calcFibonacci($i)."n";     } } $time = microtime(true) - $startTime; echo "PHP: {$time} 秒n";

不使用 PHP JIT 的情況下測試

php test.php ->執行結果取一個平均 832040 CGO: 0.059875011444092 秒 832040 zephir: 8.5679790973663 秒 832040 PHP: 0.75995492935181 秒

使用 PHP JIT 的情況下測試

php -dopcache.enable_cli=1 -dopcache.jit_buffer_size=100M test.php  ->執行結果取一個平均 832040 CGO: 0.046900987625122 秒 832040 zephir: 5.5882248878479 秒 832040 PHP: 0.10621190071106 秒

cgo 和 zephir 編譯后的 so文件,通過php.ini 引入進來

執行測試腳本需要保證so正確讀取進來。

命令 php -m 或者 php –ri xx.so 進行確認。

[PHP Modules] Core ctype curl date dom FFI fileinfo filter gd go2php hash iconv json libxml lsz mbstring mysqlnd openssl pcre PDO pdo_mysql pdo_sqlite Phar posix redis Reflection session SimpleXML SPL sqlite3 standard swoole tokenizer xml xmlreader xmlwriter yaf Zend OPcache zephir_parser zimuge [Zend Modules] Zend OPcache

使用PHP版本

php -v PHP 8.1.3 (cli) (built: Feb 27 2022 19:40:08) (NTS) Copyright (c) The PHP Group Zend Engine v4.1.3, Copyright (c) Zend Technologies     with Zend OPcache v8.1.3, Copyright (c), by Zend Technologies

結論:

JIT 能提高 php 的性能。

想學習 go 又不想放棄 php 可以用玩下 CGO。

zephir 雖然計算性能不太好,但是寫 PHP 擴展實現起來比較簡單。

推薦學習:《PHP視頻教程》

贊(0)
分享到: 更多 (0)
?
網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
免费无码又爽又刺激高潮| 欧美丰满性久久久久久久| 蜜桃视频在线观看| 欧美乱强伦XXXXX高潮| 人人妻人人爽人人做夜欢视频九色| 日韩欧美成人免费观看| 无码纯肉视频在线观看喷水| 亚洲国产AV玩弄放荡人妇系列| 亚洲情A成黄在线观看动漫尤物| 中文无码日韩欧免费视频APP| YW尤物AV无码点击进入福利| 成人无码AV一区二区三区| 国产精品久久无码一区二区三区网 | 欧美性猛交XXXX乱大交蜜桃 | 丰满老熟妇好大BBBBB| 国产精品无码翘臀在线观看 | 国产男男Gay做受| 久别的草原在线看视频免费| 内射在线CHINESE| 少妇人妻AV无码专区| 亚洲国产AV无码一区二区三区| 幼儿HIPHOP张婉莹仙踪网| 锕锕锕锕锕锕好痛WWW在线观看| 国产对白videos麻豆高潮| 久久SE精品一区二区| 欧美嫩FREEXXXHD| 无码国产欧美日韩精品| 亚洲中文字幕日产无码| 差差差无掩盖视频30分钟| 国产欧美一区二区三区在线看| 巨波霸乳在线永久免费视频 | 粗大黑人巨茎大战欧美成人免费看| 非洲妓女BBWBBWW| 国内精品久久久久久不卡影院| 久久久亚洲欧洲日产无码AV| 人人妻人人澡人人爽欧美一区九九 | 欧美一级一片内射欧美美妇3p| 无码日韩人妻精品久久蜜桃| 曰曰摸天天添天天湿| 丰满大爆乳波霸奶| 久久99精品久久久久麻豆| 人妻精品丝袜一区二区无码AV| 亚洲 中文字幕 日韩 无码| 中文字幕熟妇人妻在线视频| 国产AV一区二区二三区妇| 久久久久久精品免费免费69| 日韩人妻无码一区二区三区99| 亚洲成在人线视AV| XXXXBBBB欧美残疾人| 狠狠色丁香久久婷婷综合蜜芽五月| 欧美大屁股XXXX高跟欧美黑人| 性刺激性色爽爱小说| AV免费啪啪永久| 国精产品一区二区三区有限公司| 欧美老熟妇XB水多毛多| 亚洲AV无码AV制服丝袜在线 | 国产一级 片内射30岁老熟女| 欧美成本人网站免费观看| 亚洲AV无码乱码精品观看| 把插八插露脸对白内射| 久久精品亚洲日本波多野结衣| 牲欲强的熟妇农村老妇女视频| 中国丰满熟妇XXXX性| 国产手机AV片在线无码观你| 人妻丰满熟AV无码区HD| 亚洲中文字幕在线第六区| 国产成人综合久久精品免费| 欧美黑人巨大最猛性XXXXX| 亚洲国产AV一区二区三区四区| 成人国产三级在线观看| 久久夜色精品国产网站| 下面饿了想吃大香肠| 抱着边走边撞水流了一地的水| 久久精品人人做人人综合试看| 为了撞上你1∨1SC| XXXⅩ少妇少妇XXXX范冰冰| 久久WWW免费人成_看片| 无码任你躁久久久久久久| YELLOW在线观看| 老女人婬乱d一级毛片| 亚洲AV无码潮喷在线观看蜜桃| 敌伦交换第11部分给了轨公领| 免费专区SM美脚践踏调教视频| 亚洲AV无码一区二区三区乱码4| 荡公乱妇第1章95| 欧美极品少妇XXXXⅩ喷水| 亚洲熟妇AⅤ无码一区二区| 国产裸体歌舞一区二区| 日韩久久一区二区三区蜜桃| 99精品视频九九精品视频| 久久精品国产亚洲A∨麻豆| 亚洲AV成人午夜福利在线观看 | ACTION对魔忍| 久久久久久精品免费免费| 亚洲成A人片在线观看无码| 国产成人无码AV在线播放DVD| 人人添人人妻人人爽频| 99久久国产综合精品五月天喷水 | 19782美国农场主的三个女儿| 久久精品99久久香蕉国产色戒| 亚欧免费无码AⅤ在线观看| 福利 无码 三级 视频| 人妻丰满熟妇无码AV| 97人人澡人人爽人人模亚洲| 麻豆久久亚洲AV成人无码电影| 亚洲人成网站在线播放2020| 好黄好污美女裸体网站| 午夜天堂一区人妻| 国产精品成人久久久久久久| 少妇被躁C至高潮HD| 锕锕锕锕锕锕锕好疼JK漫画| 欧美日韩不卡合集视频| 2021国产麻豆剧传媒在线| 麻豆国产精品VA在线观看| 夜夜夜高潮夜夜爽夜夜爰爰| 久久国产劲爆∧V内射| 亚洲精品无码久久久久AV麻豆| 黑人欧美一区二区三区4p| 女人露P毛视频·WWW| 51CG今日吃瓜热门大瓜| 免费高清视频 大片| 中文字幕久久久久久精品| 蜜桃国产精品乱码一区二区三区| 制服丝袜自拍另类第1页| 巨胸喷奶水视频WWW免费动漫| 一边喘气一边说疼的视频| 久久亚洲精品中文字幕波多野结衣| 亚洲一区在线曰日韩在线| 久久精品国产只有精品66| 亚洲熟妇丰满色XXXXX欧美| 精品无人区卡一卡二卡三| 亚洲人精品午夜射精日韩| 久久精品国产欧美日韩| 一边做饭一边躁狂怎么办呢69| 久久夜色噜噜噜亚洲AV| 中日韩人妻中文字幕视频在线| 女人偷拍厕所69XXXXXWW| ZPS无套内射视频免费播放| 日本三线和韩国三线品牌对比 | 无码播放一区二区三区| 国产精品自在在线午夜出白浆| 亚洲AV涩涩涩成人网站| 姬小满乳液狂飙奖励自己| 亚洲无码一区二区三区| 两只奶头被老头吸肿了| 99久RE热视频这只有精品6| 趴下老子要从后面CAO你| 夜夜爱夜夜做夜夜爽| 人妻人人做人碰人人添| 国产妇女馒头高清泬20P多| 亚洲乱理伦片在线观看中字 | 娇妻强被迫伦姧惨叫 在线| 亚洲AVT无码天堂网| 久久久久久久极品内射| АⅤ资源中文在线天堂| AV无码不卡一区二区三区| 欧美怡春院一区二区三区| 成年无码动漫AV片在线尤物| 图片区小说区激情区偷拍区| 好男人好资源神马在线观看 | 青青草原精品国产亚洲AV| 大帝AV在线一区二区三区| 午夜天堂AV天堂久久久| 精品久久久久久久久午夜福利| 幼儿幼儿幼儿N0UUUUU精品| 欧美三级三级三级爽爽爽| 粉嫩AV一区二区夜夜嗨| 亚洲AV无码成H在线观看| 久久久久久精品免费看SSS| A级毛片免费观看播放器| 色综合久久综合欧美综合网| 国产亚洲精品无码专区| 一二三四在线观看免费高清视频| 欧美最猛黑人XXXⅩ猛男爽| 东京热无码一区二区三区AV| 亚洲AV无码成人精品区在线欢看| 久久久亚洲熟妇熟女中文字幕| YELLOW免费观看高清在线| 无码专区永久免费AV网站| 久久青草费线频观看| 啊轻点内射在线视频| 无码一区二区三区蜜桃| 久久99国产综合精品| 啊灬啊灬啊灬快灬高潮了老| 无码中文字幕人妻在线一区| 久久综合亚洲色1080P| 成人在线高清不卡免费视频| 亚洲А∨天堂久久精品PPYPP| 亚洲AV日韩AV永久无码绿巨人| 妺妺窝人销魂体色www| 久久精品高清一区二区三区| 国产精品岛国久久久久| 18禁H漫免费漫画无码网站| 亚洲AV无码一区二区三区网址| 熟妇高潮一区二区精| 男人J桶进女人P无遮挡在线观看| 国色天香在线视频免费观看| 18禁美女裸体爆乳无遮挡动图| 完整版免费AV片| 毛片A级毛片免费观看品善网|