ごあいさつhabrazhitel! 私のプロジェクトでFFCMSを開発するとき 、私は主要な目標の1つを高速かつ機器リソースの最小消費として強調しましたが、すべての値は比較によってのみ推定できます。これについては、この記事で説明します。
私の前回の出版物では、一部のユーザーがシステムパフォーマンスの問題について質問し、2014年10月18日現在、人気のあるさまざまなCMSをテストすることにしました。 私は注意したい-システムはインストール直後にテストされ、データはシステムの使用期間に応じて一方向または別の方向に大幅に変化する可能性があります-データベース、ファイル数、その他の条件を増やします。
まえがき
そのようなテストを実施する前に、私は同様のテストの結果を見たいと思っていました。 しかし、残念なことに、多くの基準に従って少なくとも3つ以上のシステムを比較する単一の包括的なテストを見つけることができませんでした(たぶん見栄えが悪いのでしょうか?)。 これは驚くべきことです。何十、何十、何十万というウェブマスター、プログラマー、大企業が人気のあるCMSを使用しているからです。実際、システムが消費するリソースの問題に誰も関心がないのですか?
テストオブジェクト
テストのために、現在市販されているシステムと無料のシステムの両方を選択しました。 10のシステムが選択され、その名前と使用されているバージョンは以下のとおりです。
- Bitrixスタンダード-14.5.0
- WordPress 4.0
- Drupal 7.32
- Joomla! 3.3.6
- Umi.cms 2.9.7
- FFCMS 2.0.3
- InstantCMS 2.1.1
- KodiCMS 12.20.37(マスター)
- NetCat Standart 5.4
- HostCMS。景品6.1.6
有料システムの場合、デモバージョンが選択され、作成者のWebサイトからダウンロードできます。
テスト方法
すべての製品でテスト結果が均一になるように、Webサーバー、データベース、およびその他の必要なテストソフトウェアがインストールされた仮想マシンが作成されました。 スタンドとして使用されたもの:
- Apache 2.2.27;
- PHP 5.3.28;
- MySQL Community Server 5.5.38-log;
- PHPモジュール:Zend Engine v2.3.0(opcache、xcache、acp、eacceleratorなし);
- Apacheベンチマークバージョン2.3。
* UPD:コメントで批評家が要求したように、OPCacheを有効にして2番目のphp 5.5テストも実施されました-結果はメインテストに比例します。 結果は最後のセクションに示されています。
各CMSはスタンドの仮想環境にインストールされ、その後、コード(ほとんどの場合はindex.php)に数行が追加され、スクリプトの実行時間と使用メモリ量に関する結果を保存できるようになりました。
$_test_loadstart = microtime(true); // CMS $_test_loadend = microtime(true); $_test_loadtime = number_format($_test_loadend - $_test_loadstart, 3); $_test_memory = number_format(memory_get_usage()/1048576, 3); file_put_contents($_SERVER['HTTP_HOST'] . '.txt', $_test_loadtime . ';' . $_test_memory . "\n", FILE_APPEND);
その結果、domain.local.txtファイルが受信されました。このファイルには、スクリプトのロード時間とRAM消費に関するデータが含まれていました。
サイトへのリクエストを作成するために、並行リクエストを作成せずにab(Apacheベンチマーク)を使用しました-目標はapacheをテストすることではなく、目標は各CMSの平均結果を取得することでした:
ab -n 1000 http://domain.local/ > ~/bench/ab/domain.local.txt
結果を評価するための方法論
全体として、テストテクノロジーは、以下のセクションの上記のテクノロジーに基づいて評価されました。
- 記述的評価(基本)-配布サイズ、ファイル数、データベースのサイズと特性
- スクリプトのダウンロード速度の見積もり(phpload_time)
- 推定RAMサイズ(phpload_memory)
- Apacheベンチマークテスト結果の評価(apache_benchmark)
各テストセクションでは、CMSごとに、得られた結果(個人)とサンプル全体の平均(平均)に応じて、グレード(-2 <= x <= +2)が設定されました。
- -2-このテストで最悪の結果
- -1-結果はこのテストの平均よりも悪い
- +0.5-結果は標準偏差内の平均に近い
- +1-結果はこのテストの平均よりも優れています
- +2-このテストで最高の結果
すべての基準によるすべてのカテゴリのテスト結果に基づいて、結果の表がコンパイルされ、すべてのテストの合計結果が表示されます。
*また、1つの点について説明します。テスト中にUMI.CMSがダウンロード速度にとてつもない結果を示したため、一部のテストカテゴリでその結果がAVGの計算から除外されました。
テスト中
材料とテストの方法論に精通しているため、テスト自体に直接進みます。 以下は、テストの各カテゴリの最終結果です。
ユーザーフレンドリーなテスト結果: Googleスプレッドシート
OPCacheを使用したPHP 5.5の結果(コアに比例): Googleスプレッドシート 。
記述的評価
テスト/ CMS | ビトリックス
| ワードプレス | Drupal | Joomla | Umi.CMS | Ffms | インスタント | KodiCMS
| Netcat
| Hostcms | 平均 | MIN | マックス |
インストール済みサイズ(MB) | 191 | 18.5 | 11.7 | 20.1 | 105 | 18.9 | 11.9 | 23,4 | 98.4 | 17.5 | 51.64 | 11.7 | 191 |
ファイル数 | 29908 | 1175 | 1074 | 5267 | 7128 | 1682 | 1650 | 3009 | 6391 | 2919 | 6020.3 | 1074 | 29908 |
MySQLテーブル数 | 241 | 11 | 74 | 68 | 97 | 22 | 84 | 33 | 155 | 114 | 89.9 | 11 | 241 |
MySQLテーブルの行 | 21918 | 126 | 1421 | 461 | 14616 | 187 | 12587 | 46 | 31467 | 20302 | 10313.1 | 46 | 31467 |
MySQLデータベースのサイズ(MB) | 11 | 0.56 | 4.6 | 3.9 | 6.2 | 0.356 | 6.8 | 0.948 | 2.7 | 1.9 | 3.8964 | 0.356 | 11 |
要約ポイント | -9 | 6 | 5 | 5.5 | -5 | 6 | 1 | 6 | -4 | 1 |
スクリプトの読み込み速度の推定
テスト/ CMS | ビトリックス
| ワードプレス | Drupal | Joomla | Umi.CMS | Ffms | インスタント | KodiCMS
| Netcat
| Hostcms | 平均 | MIN | マックス |
AVGロード時間(秒)
| 0.50 | 0.497733 | 0.210623 | 0.325381 | 2.99 | 0,090089 | 0.548239 | 0.213725 | 0.3279 | 0.70523 | 0.38 | 0.09 | 0.71 |
最小ロード時間(秒)
| 0.45 | 0.467 | 0.19 | 0,305 | 2.9 | 0,083 | 0.518 | 0.194 | 0,304 | 0.144 | 0.30 | 0.08 | 0.52 |
最大ロード時間(秒)
| 0.69 | 0.661 | 0.317 | 0.489 | 3,218 | 0.135 | 0.851 | 1,387 | 2,076 | 0.91 | 0.83 | 0.14 | 2.08 |
要約ポイント | -1 | -1 | 3 | 2.5 | -6 | 6 | -2.5 | 1 | -4 | -2 |
推定RAMサイズ
テスト/ CMS | ビトリックス
| ワードプレス | Drupal | Joomla | Umi.CMS | Ffms | インスタント | KodiCMS
| Netcat
| Hostcms | 平均 | MIN | マックス |
AVGメモリ(mb)
| 28,944115 | 22,992 | 18,144003 | 12,556 | 23,089791 | 3,181 | 5,953808 | 6,485019 | 13,696 | 10,789239 | 14.5830975 | 3,181 | 28,944115 |
最小メモリ(mb) | 28,942 | 22,992 | 18,144 | 12,556 | 22,784 | 3,181 | 5,951 | 6,485 | 13,696 | 4,213 | 13.8944 | 3,181 | 28,942 |
最大メモリ(mb)
| 29,177 | 22,992 | 18,147 | 12,556 | 23,095 | 3,181 | 6,885 | 6,504 | 13,696 | 10,848 | 14.7081 | 3,181 | 29,177 |
要約ポイント | -6 | -3 | -3 | 3 | -3 | 6 | 3 | 3 | 3 | -1 |
Apacheベンチマークスコア
テスト/ CMS | ビトリックス
| ワードプレス | Drupal | Joomla | Umi.CMS | Ffms | インスタント | KodiCMS
| Netcat
| Hostcms | 平均 | MIN | マックス |
テストにかかった時間(秒) | 527,433 | 520,498 | 230.91 | 340,219 | 13 032.86 | 97,178 | 555,886 | 224,176 | 343,965 | 727,217 | 396.3868889 | 97,178 | 727,217 |
完全なリクエスト | 1000 | 1000 | 1000 | 1000 | 1000 | 1000 | 1000 | 1000 | 1000 | 1000 | 1000 | 1000 | 1000 |
失敗したリクエスト | 965 | 0 | 0 | 0 | 697 | 0 | 0 | 0 | 0 | 955 | 213,3333333 | 0 | 965 |
1秒あたりのリクエスト(#/秒) | 1.9 | 1.92 | 4.33 | 2.94 | 0.08 | 10.29 | 1.8 | 4.46 | 2.91 | 1.38 | 3,547777778 | 1.38 | 10.29 |
リクエストごとの時間(ミリ秒) | 527,433 | 520,498 | 230.91 | 340,219 | 13032,857 | 97,178 | 555,886 | 224,176 | 343,965 | 727,217 | 396.3868889 | 97,178 | 727,217 |
転送速度 | 69.51 | 14.9 | 32,99 | 28.61 | 2.28 | 105.48 | 92.36 | 13.33 | 31.74 | 23.98 | 45,87777778 | 13.33 | 105.48 |
要約ポイント | -4 | -2 | 4 | 2 | -12 | 10 | 0 | 4 | 2 | -6 |
最終結果
テスト/ CMS | ビトリックス
| ワードプレス | Drupal | Joomla | Umi.CMS | Ffms | インスタント | KodiCMS
| Netcat
| Hostcms |
ベーシック | -9 | 6 | 5 | 5.5 | -5 | 6 | 1 | 6 | -4 | 1 |
phpload_time | -1 | -1 | 3 | 2.5 | -6 | 6 | -2.5 | 1 | -4 | -2 |
phpload_memory | -6 | -3 | -3 | 3 | -3 | 6 | 3 | 3 | 3 | -1 |
Apacheベンチマーク | -4 | -2 | 4 | 2 | -12 | 10 | 0 | 4 | 2 | -6 |
結果の概要
| -20 | 0 | +9 | +13 | -26 | +28 | +1.5 | +14 | -3 | -8 |
試験結果
ここで、テストの結果をノックアウトして、結果を簡単に評価します。 私たちのすべての結果は0から2の側面にあります:否定的な結果になったものコンピューティングリソースを重視する場合は、誰にも使用しないことをお勧めします(これは私の個人的な意見です-そのようなシステムの機能は桁違いに高くなる可能性があることを完全に理解しています他よりも)。
重要なテスト結果の1つは、 単一のオープンシステムが負の評価を受けなかったという事実であり、すべての商用製品がこのラインの後ろにありました(オープンソースを支持して+6 / -4)。
他の結論を出したいとは思いません。重要なテストの最終的なグラフを示し、あなた自身の結論を導きます(すべての写真はクリック可能です):
あとがき
決して誰かを怒らせたくはありませんでした-さまざまなCMSの主観的なテストの結果のみを提供しました。 おそらくサイトの開発/管理の利便性よりも、リソース消費があなたにとって非常に重要であるかどうかを判断する権利が常にあります。
便利な結果: Googleスプレッドシート
OPCacheを使用したPHP 5.5の結果(コアに比例): Googleスプレッドシート
プレーンテキストでのテスト: Yandex.Diskから取得