對比幾個測試云的一些速度

?最近被hosting vps主機的速度給困擾了,干脆放下手中的活 測試下

test.php放在網站根目錄即可

代碼如下:

<?php
/*** 最終版服務器性能測試工具* 測試項目:CPU運算性能、內存讀寫速度、硬盤IO速度、網絡下載速度*/// 配置參數(已優化以控制總測試時間在100秒內)
$config = ['cpu_test_duration' => 3,      // CPU測試持續秒數'mem_test_size' => 32,         // 內存測試大小(MB)'disk_test_size' => 50,        // 硬盤測試大小(MB)'disk_block_size' => 4,        // 硬盤測試塊大小(KB)'net_test_size_mb' => 50,      // 網絡測試下載大小(MB)'net_test_url' => 'https://speed.hetzner.de/100MB.bin', // 網絡測試文件'tmp_file' => __DIR__ . '/benchmark_tempfile.tmp'      // 臨時文件路徑
];// 工具函數:格式化大小顯示
function formatSize($bytes) {$units = ['B', 'KB', 'MB', 'GB', 'TB'];$unit = 0;while ($bytes >= 1024 && $unit < 4) {$bytes /= 1024;$unit++;}return number_format($bytes, 2) . ' ' . $units[$unit];
}// 工具函數:格式化時間顯示
function formatTime($seconds) {if ($seconds < 1) return number_format($seconds * 1000, 1) . ' ms';return number_format($seconds, 3) . ' s';
}// 工具函數:輸出分隔線
function printSeparator() {echo "----------------------------------------\n";
}// 工具函數:確保在瀏覽器和CLI中都能正確換行
function eol() {return (PHP_SAPI === 'cli') ? "\n" : "<br>\n";
}// 記錄總開始時間
$start_time = microtime(true);// 標題顯示
echo eol();
printSeparator();
echo "          服務器性能測試結果          " . eol();
printSeparator();
echo "測試時間:" . date('Y-m-d H:i:s') . eol() . eol();// 1. CPU性能測試(計算質數)
echo "[1/4] CPU性能測試中...";
$startTime = microtime(true);
$primeCount = 0;
$currentNumber = 2;while (microtime(true) - $startTime < $config['cpu_test_duration']) {$isPrime = true;for ($i = 2; $i <= sqrt($currentNumber); $i++) {if ($currentNumber % $i == 0) {$isPrime = false;break;}}if ($isPrime) $primeCount++;$currentNumber++;
}$cpuTime = microtime(true) - $startTime;
$cpuResult = ['duration' => $cpuTime,'prime_count' => $primeCount,'per_second' => $primeCount / $cpuTime
];
echo "完成" . eol();// 2. 內存性能測試
echo "[2/4] 內存性能測試中...";
$memSize = $config['mem_test_size'] * 1024 * 1024; // 轉換為字節
$blockSize = 4096;
$blocks = $memSize / $blockSize;
$data = [];// 內存寫入測試
$startTime = microtime(true);
for ($i = 0; $i < $blocks; $i++) {$data[] = str_repeat(chr(rand(0, 255)), $blockSize);
}
$writeTime = microtime(true) - $startTime;// 內存讀取測試
$startTime = microtime(true);
$checksum = 0;
for ($i = 0; $i < $blocks; $i++) {$checksum += crc32($data[$i]);
}
$readTime = microtime(true) - $startTime;// 釋放內存
unset($data);$memResult = ['write_speed' => $config['mem_test_size'] / $writeTime,'read_speed' => $config['mem_test_size'] / $readTime
];
echo "完成" . eol();// 3. 硬盤IO測試
echo "[3/4] 硬盤IO測試中...";
$testFile = $config['tmp_file'];
$diskSize = $config['disk_test_size'] * 1024 * 1024;
$blockSize = $config['disk_block_size'] * 1024;
$totalBlocks = $diskSize / $blockSize;
$randomData = random_bytes($blockSize);// 寫入測試
$startTime = microtime(true);
$file = fopen($testFile, 'wb');
for ($i = 0; $i < $totalBlocks; $i++) {fwrite($file, $randomData);
}
fclose($file);
$writeTime = microtime(true) - $startTime;// 讀取測試
$startTime = microtime(true);
$file = fopen($testFile, 'rb');
for ($i = 0; $i < $totalBlocks; $i++) {fread($file, $blockSize);
}
fclose($file);
$readTime = microtime(true) - $startTime;// 刪除測試文件
@unlink($testFile);$diskResult = ['write_speed' => $config['disk_test_size'] / $writeTime,'read_speed' => $config['disk_test_size'] / $readTime,'write_iops' => $totalBlocks / $writeTime,'read_iops' => $totalBlocks / $readTime
];
echo "完成" . eol();// 4. 網絡速度測試(下載測試)
echo "[4/4] 網絡速度測試中...";
$testUrl = $config['net_test_url'];
$startTime = microtime(true);
$ch = curl_init($testUrl);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_NOPROGRESS, true);
curl_setopt($ch, CURLOPT_TIMEOUT, 60); // 最大超時60秒
$content = curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
$downloadSize = min(curl_getinfo($ch, CURLINFO_SIZE_DOWNLOAD) / 1024 / 1024, $config['net_test_size_mb']); // MB
$downloadTime = microtime(true) - $startTime;
curl_close($ch);$netResult = ['speed' => 0,'size' => $downloadSize,'time' => $downloadTime
];if ($httpCode == 200 && $downloadSize > 0 && $downloadTime > 0) {$netResult['speed'] = $downloadSize / $downloadTime;
}
echo "完成" . eol() . eol();// 最終匯總報告
printSeparator();
echo "              測試結果匯總              " . eol();
printSeparator();
echo "1. CPU性能:" . number_format($cpuResult['per_second'], 1) . " 質數/秒" . eol();
echo "   測試時間:" . formatTime($cpuResult['duration']) . eol() . eol();
echo "2. 內存性能:" . eol();
echo "   寫入速度:" . number_format($memResult['write_speed'], 2) . " MB/s" . eol();
echo "   讀取速度:" . number_format($memResult['read_speed'], 2) . " MB/s" . eol() . eol();
echo "3. 硬盤IO:" . eol();
echo "   寫入速度:" . number_format($diskResult['write_speed'], 2) . " MB/s(IOPS: " . number_format($diskResult['write_iops'], 0) . ")" . eol();
echo "   讀取速度:" . number_format($diskResult['read_speed'], 2) . " MB/s(IOPS: " . number_format($diskResult['read_iops'], 0) . ")" . eol() . eol();
echo "4. 網絡速度:" . eol();
echo "   下載速度:" . number_format($netResult['speed'], 2) . " MB/s(" . number_format($netResult['speed'] * 8, 2) . " Mbps)" . eol() . eol();
echo "測試總耗時:" . formatTime(microtime(true) - $start_time) . eol();
echo "測試完成時間:" . date('Y-m-d H:i:s') . eol() . eol();
?>

不得不服氣阿里云,在國內一直是遙遙領先的存在!?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/89093.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/89093.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/89093.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

UE5 Grid3D 學習筆記

一、Neighbor Grid 3D 的核心作用 NeighborGrid3D 是一種基于位置的哈希查找結構&#xff0c;將粒子按空間位置劃分到網格單元&#xff08;Cell&#xff09;中&#xff0c;實現快速鄰近查詢&#xff1a; 空間劃分&#xff1a;將模擬空間劃分為多個三維網格單元&#xff08;Cel…

Spring AI ——在springboot應用中實現基本聊天功能

文章目錄 前言測試環境項目構建依賴引入指定openai 相關配置基于 application.yml 配置 Open AI 屬性application.yml編寫測試類測試請求基于讀取后配置請求編寫測試接口測試效果展示流式輸出前言 AI 技術越來越火爆,作為Java開發人員也不能拖了后腿。 前段時間使用LangChain…

條件概率:不確定性決策的基石

條件概率是概率論中的核心概念&#xff0c;用于描述在已知某一事件發生的條件下&#xff0c;另一事件發生的概率。它量化了事件之間的關聯性&#xff0c;是貝葉斯推理、統計建模和機器學習的基礎。 本文由「大千AI助手」原創發布&#xff0c;專注用真話講AI&#xff0c;回歸技術…

搭建Flink分布式集群

1. 基礎環境&#xff1a; 1.1 安裝JDK 本次使用 jdk-11.0.26_linux-x64_bin.tar.gz 解壓縮 tar -zxvf jdk-11.0.26_linux-x64_bin.tar.gz -C /usr/local/java/ 配置環境變量&#xff1a; vi /etc/profileJAVA_HOME/usr/local/java/jdk-11.0.26 CLASSPATH.:${JAVA_HOME}/li…

基于ssm校園綜合服務系統微信小程序源碼數據庫文檔

摘 要 隨著我國經濟迅速發展&#xff0c;人們對手機的需求越來越大&#xff0c;各種手機軟件也都在被廣泛應用&#xff0c;但是對于手機進行數據信息管理&#xff0c;對于手機的各種軟件也是備受用戶的喜愛&#xff0c;校園綜合服務被用戶普遍使用&#xff0c;為方便用戶能夠可…

桌面小屏幕實戰課程:DesktopScreen 17 HTTPS

飛書文檔http://https://x509p6c8to.feishu.cn/docx/doxcn8qjiNXmw2r3vBEdc7XCBCh 源碼參考&#xff1a; /home/kemp/work/esp/esp-idf/examples/protocols/https_request 源碼下載方式參考&#xff1a; 源碼下載方式 獲取網站ca證書 openssl s_client -showcerts -connec…

uniapp上傳gitee

右鍵點擊項目&#xff0c;選擇git提交&#xff0c;會彈出這樣的彈窗 在Message輸入框里面輸入更新的內容&#xff0c;選擇更新過的文件&#xff0c;然后點擊commit 然后點擊push 后面會讓你填寫gitee的用戶名和密碼 用戶名就是郵箱 密碼就是登錄gitee的密碼

重寫(Override)與重載(Overload)深度解析

在Java面向對象編程中&#xff0c;多態性是一個核心概念&#xff0c;它允許我們以統一的方式處理不同類型的對象。而實現多態性的兩種重要機制便是方法的“重寫”&#xff08;Override&#xff09;與“重載”&#xff08;Overload&#xff09;。透徹理解這兩者之間的區別與聯系…

Go 語言中操作 SQLite

sqlite以其無需安裝和配置&#xff1a;直接使用數據庫文件&#xff0c;無需啟動獨立的數據庫服務進程。 單文件存儲&#xff1a;整個數據庫&#xff08;包括表、索引、數據等&#xff09;存儲在單個跨平臺文件中&#xff0c;便于遷移和備份。 在應對的小型應用軟件中.有著不可…

【硬核數學】2.3 AI的“想象力”:概率深度學習與生成模型《從零構建機器學習、深度學習到LLM的數學認知》

歡迎來到本系列的第八篇文章。在前七章中&#xff0c;我們已經構建了一個強大的深度學習工具箱&#xff1a;我們用張量來處理高維數據&#xff0c;用反向傳播來高效地計算梯度&#xff0c;用梯度下降來優化模型參數。我們訓練出的模型在分類、回歸等任務上表現出色。 但它們有…

華為云Flexus+DeepSeek征文|Dify平臺開發搭建口腔牙科24小時在線問診系統(AI知識庫系統)

引言&#xff1a;為什么需要口腔牙科24小時在線問診系統&#xff1f; 在口腔醫療領域&#xff0c;“時間”是患者最敏感的需求之一——深夜牙齒突發疼痛、周末想提前了解治療方案、異地患者無法及時到院……傳統“工作時間在線”的咨詢模式已無法滿足用戶需求。同時&#xff0…

嵌入式硬件中電容的基本原理與詳解

大家好我們今天重討論點知識點如下: 1.電容在電路中的作用 2.用生活中水缸的例子來比喻電容 3.電容存儲能力原理 4.電容封裝的種類介紹電容種類圖片辨識 5.X 電容的作用介紹 6.Y 電容的作用介紹7.鉭電容的優點及特性 7.鉭電容的缺點及特性 8. 鋁電解電容的優點及特性…

中央空調控制系統深度解析:從原理到智能AIOT運維

——附水冷式系統全電路圖解與技術參數 一、中央空調系統架構與技術演進 1. 兩大主流系統對比 技術趨勢&#xff1a;2023年全球冷水機組市場占比達68%&#xff08;BSRIA數據&#xff09;&#xff0c;其核心優勢在于&#xff1a; - 分區控溫精度&#xff1a;0.5℃&#…

document.write 和 innerHTML、innerText 的區別

document.write 與 innerHTML、innerText 的區別 document.write 直接寫入 HTML 文檔流&#xff0c;若在頁面加載完成后調用會覆蓋整個文檔。常用于動態生成內容&#xff0c;但會破壞現有 DOM 結構&#xff0c;不推薦在現代開發中使用。 document.write("<p>直接寫…

日志分析與實時監控:Elasticsearch在DevOps中的核心作用

引言 在現代DevOps實踐中&#xff0c;日志分析與實時監控是保障系統穩定性與性能的關鍵。Elasticsearch作為分布式搜索與分析引擎&#xff0c;憑借其高效的索引與查詢能力&#xff0c;成為構建日志管理與監控系統的核心組件。本文將深入探討Elasticsearch在DevOps中的應用&…

Unity Catalog 三大升級:Data+AI 時代的統一治理再進化

在剛剛落幕的 2025 Databricks Data AI Summit 上&#xff0c;Databricks 重磅發布了多項 Lakehouse 相關功能更新。其中&#xff0c;面向數據湖治理場景的統一數據訪問與管理方案 —— Unity Catalog&#xff0c;迎來了三大關鍵升級&#xff1a;全面支持 Apache Iceberg、面向…

電容屏觸摸不靈敏及跳點問題分析

在電容屏的使用過程中&#xff0c;觸摸不靈敏和觸點不精準是極為常見且讓人困擾的問題。這些問題不僅影響用戶的操作體驗&#xff0c;在一些對觸摸精度要求較高的場景&#xff0c;如工業控制、繪圖設計等領域&#xff0c;還可能導致嚴重的后果。下面我們就來深入剖析一下這兩個…

小程序學習筆記:導航、刷新、加載、生命周期

在小程序開發的領域中&#xff0c;掌握視圖與邏輯相關的技能是打造功能完備、用戶體驗良好應用的關鍵。今天&#xff0c;咱們就來深入梳理一下小程序視圖與邏輯的學習要點&#xff0c;并結合代碼示例&#xff0c;讓大家有更直觀的理解。 一、頁面之間的導航跳轉 在小程序里實…

生成樹基礎實驗

以太網交換網絡中為了進行鏈路備份&#xff0c;提高網絡可靠性&#xff0c;通常會使用冗余鏈路。但是使用冗余鏈路會在交換網絡上產生環路&#xff0c;引發廣播風暴以及 MAC地址表不穩定等故障現象&#xff0c;從而導致用戶通信質量較差&#xff0c;甚至通信中斷。 為解決交換…

flex布局實例:把色子放進盒子里

目錄 一、flex布局實例&#xff1a;把色子放進盒子里 1、基礎樣式 二、justify-content 屬性 三、flex-direction 屬性 四、align-items 屬性 五、flex-wrap 屬性 二、flex布局應用到常見場景 非常詳細的講解flex布局&#xff0c;看一看&#xff0c;練一練&#xff01; …