摘要:基于的多路復(fù)用,使得并沒有比性能差太多下面是我簡單做的一個(gè),基于檢驗(yàn)隧道的服務(wù)性能客戶端與服務(wù)端都搭在本地,代理同事電腦上的服務(wù)。不是特別符合應(yīng)用場景,大家簡單看一下。
Spike https://github.com/slince/spike
之前由于要與一個(gè)同事遠(yuǎn)程協(xié)作開發(fā)一款 app 需要用到內(nèi)網(wǎng)穿透服務(wù),在網(wǎng)上找到了 frp 與 ngrok ;后來我在想能不能用 php 也寫出來一個(gè)這樣的服務(wù)軟件?大家都知道 php 多進(jìn)程多線程不夠友好,在 window 上還不支持;寫服務(wù)確實(shí)很吃力;不過幸運(yùn)的是有ReactPHP的存在,關(guān)于 ReactPHP 不做贅述有興趣的同學(xué)可以自行百度。
基于 ReactPHP 的 IO 多路復(fù)用,使得 Spike 并沒有比 Frp 性能差太多;下面是我簡單做的一個(gè) benchmark,基于 apache ab 檢驗(yàn) http 隧道的服務(wù)性能;客戶端與服務(wù)端都搭在本地,代理同事電腦上的 http 服務(wù)。不是特別符合應(yīng)用場景,大家簡單看一下。
從下面的信息可以看出 Spike 性能似乎是稍微好點(diǎn)的,不過這個(gè)地方有點(diǎn)不公平,我在做 spike 的測試時(shí)只開啟了服務(wù)端的日志,客戶端的日志是關(guān)閉的;而 FRP 的兩端日志都是開啟的;我不知道怎么關(guān) frp 的日志;
在這里簡單提一點(diǎn)由于 Spike 的日志 IO 是同步的所以日志的讀寫會耗掉部分性能,提升日志等級減少日志寫入可以提升不少的性能;
這個(gè)項(xiàng)目是我比較上心的一個(gè)作品,算是證明了一點(diǎn),php 除了可以做網(wǎng)站也可以做服務(wù),并且也沒有太差。 最后再次附上項(xiàng)目地址: https://github.com/slince/spike 歡迎 star,歡迎 fork
Spike:
Concurrency Level: 10 Time taken for tests: 37.727 seconds Complete requests: 100 Failed requests: 0 Total transferred: 2569900 bytes HTML transferred: 2514600 bytes Requests per second: 2.65 [#/sec] (mean) Time per request: 3772.747 [ms] (mean) Time per request: 377.275 [ms] (mean, across all concurrent requests) Transfer rate: 66.52 [Kbytes/sec] received Connection Times (ms) min mean[+/-sd] median max Connect: 0 0 0.4 0 3 Processing: 533 3602 591.9 3714 4096 Waiting: 516 3587 592.3 3701 4076 Total: 534 3602 591.9 3715 4097 Percentage of the requests served within a certain time (ms) 50% 3715 66% 3791 75% 3822 80% 3844 90% 3970 95% 4015 98% 4053 99% 4097 100% 4097 (longest request)
Frp:
Concurrency Level: 10 Time taken for tests: 38.230 seconds Complete requests: 100 Failed requests: 0 Total transferred: 2569900 bytes HTML transferred: 2514600 bytes Requests per second: 2.62 [#/sec] (mean) Time per request: 3823.045 [ms] (mean) Time per request: 382.304 [ms] (mean, across all concurrent requests) Transfer rate: 65.65 [Kbytes/sec] received Connection Times (ms) min mean[+/-sd] median max Connect: 0 0 0.2 0 1 Processing: 379 3650 644.4 3809 4140 Waiting: 360 3633 645.5 3789 4124 Total: 380 3650 644.4 3809 4140 Percentage of the requests served within a certain time (ms) 50% 3809 66% 3847 75% 3909 80% 3923 90% 4026 95% 4053 98% 4129 99% 4140 100% 4140 (longest request)
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://www.ezyhdfw.cn/yun/23132.html
摘要:修改了一下自定義協(xié)議的傳輸形式,協(xié)議在之前的版本是設(shè)計(jì)成了類協(xié)議的形式重構(gòu)的時(shí)候發(fā)現(xiàn)這種格式處理起來并不直接,于是便更換為了形式傳輸。按照或使用遇到問題的同學(xué),可以直接在發(fā)帖,或者可以加群討論 showImg(https://segmentfault.com/img/remote/1460000015321166); 慣例附上項(xiàng)目地址 : https://github.com/slin...
這里列舉了一些比較好用的開源的內(nèi)網(wǎng)映射工具,詳細(xì)介紹一下各個(gè)軟件工具的特點(diǎn): 1. holer 輕量級的內(nèi)網(wǎng)映射工具,holer服務(wù)端采用Java語言實(shí)現(xiàn),服務(wù)端界面漂亮簡潔。Holer客戶端采用了Java語言和GO語言實(shí)現(xiàn)了兩種版本,支持幾乎所有的OS平臺。用到流行的微服務(wù)框架springboot和Java網(wǎng)絡(luò)框架netty。配置很簡單,針對所有TCP協(xié)議只需在客戶端設(shè)置一個(gè)holer acce...
摘要:簡介是一個(gè)將局域網(wǎng)服務(wù)器代理到公網(wǎng)的內(nèi)網(wǎng)穿透工具,支持轉(zhuǎn)發(fā)基于協(xié)議的報(bào)文。 Holer簡介 Holer是一個(gè)將局域網(wǎng)服務(wù)器代理到公網(wǎng)的內(nèi)網(wǎng)穿透工具,支持轉(zhuǎn)發(fā)基于TCP協(xié)議的報(bào)文。 showImg(https://segmentfault.com/img/bV86d9?w=1289&h=741); 相關(guān)鏈接 開源地址:https://github.com/Wisdom-Pro... 軟件...
摘要:基于開發(fā)的內(nèi)網(wǎng)穿透工具第一次寫,估計(jì)有點(diǎn)不好排版,原諒俺是小白簡介性能強(qiáng)悍,反應(yīng)速度更快支持本地任意端口可以用于開發(fā)本地網(wǎng)站,不需要服務(wù)器暫不支持自定義域名,只能用系統(tǒng)默認(rèn)的兩個(gè)域名,但能支持任意子域名使用說明按以下步驟軟件打包 proxy 基于electron開發(fā)的內(nèi)網(wǎng)穿透工具. showImg(https://segmentfault.com/img/remote/14600000...
閱讀 2203·2021-09-06 15:02
閱讀 1818·2021-08-13 15:02
閱讀 2396·2019-08-29 14:14
閱讀 1515·2019-08-26 13:55
閱讀 618·2019-08-26 13:46
閱讀 3468·2019-08-26 11:41
閱讀 599·2019-08-26 10:27
閱讀 3354·2019-08-23 15:28