(GO) Load test summary for Imperial CMS, Dedecms, Phpcms, Discuz, Phpwind, Xiuno
Afraid of being scolded, Ben didn't want to write this article. Hesitated for a long while, and ultimately decided to write. Hope to help some friends and realize the importance of correct design of database index.
Because I am more lazy, it is simple to describe the text, I do not bother to cut the picture to prove that the technical friends can test their own, can confirm that my test results are true. A friend who does not know the technology has no harm in believing it.
Test procedure:
CMS program: Imperial CMS dedecms phpcms
Forum Program: Discuz phpwind Xiuno
Load Test Results:
Xiuno > Discuz > Phpwind > Phpcms;? (? Imperial cms?? dedecms)
From a database design point of view (personal):
Xiuno (Discuz, Phpwind, phpcms); (Imperial CMS, DEDECMS)
Dedecms and the Imperial cms are old CMS, from the database design, I do not know that the Database designer completely did not understand the true meaning of MySQL index, or final touches to high load demand for users to improve the cost? (I hope I do not know the technology of friends do not spray me, really understand the MySQL index of friends can see their own design of the index, although for Dedecms and the author of the Imperial CMS, I am only a junior, like you have more than 10 years of development experience of people, I more respect, But I suggest that the current dedecms and Imperial CMS database designers still look at the MySQL index, can not believe me, but can take a moment to see the discuz, Phpwind database design, it is really better than you.
If it is fortunate that the imperial CMS author can see this article, I hope you re-design the Empire CMS architecture, after all these years you have been improving the load capacity of the Imperial CMS, just by the table technology upgrade, not really use the index to optimize, really do not, if the index, the performance will have a greater increase.
DEDECMS founder I know and he knew, but now Dedecms is not his, more regret, now dedecms really not much change in recent years, has been patching, so it is really more tragic.
My test environment:
I3CPU 4G Memory 1T HDD win7 system?? Apache 2.2 + MySQL 5.0 (normal environment not optimized)
Test method:
Import 1 million to 100 million? Unequal data for simple access testing
My Import Method:
Write the import program according to the data structure of each program.
1. Write a PHP program, write the data to e:/insert1.sql this file,
2. Then pass the LOAD data local INFILE ' e:/insert1.sql ' into table ' table name ' character set code;? Importing thousands of watts of data in this way is a few minutes.
1. Imperial CMS
Beta version: EMPIRECMS_7.0_SC_GBK (current official latest version)
First of all, the Imperial CMS, the official has a big data test paste (20 million data, the 17.3GB database under the Empire CMS Super Build Speed?), when I saw this test post, I also feel that the load is very strong, but I tested, let me down.
Install default test data (Total 33 news test data), home to Dynamic home page? First visit 0.670127010345459 second visit 0.07926607131958
I import 100W data, database size 3.6G, first time access 182 seconds, second access 155 seconds, I do not know when the imperial CMS author testing, whether there is a test of dynamic access to the first page of time. From the 6.0 release onwards, each update has said to improve performance, but why this?
Imperial CMS Official test post, is misleading people, bluff people.
Question 1: The test data does not mention dynamic access to the home page or generate homepage. There is also no mention of the Dynamic Access List page, and the Build list page.
2. Test statistics time, but also only to the database after the execution time, and did not add time to connect to the database, it is easy to mislead many people, take this time and others to count the time compared to the database connection. It makes a big difference.
Question 3. The content of each piece of news is rarely a few lines of words. At the same time the content page template, also very simple, generated files are also very small, only 3 K. Normal articles, all from 10K to dozens of K.
4. Also because the Phome_ecms_news table ID is the primary key, when reading content, is the index of walking, so dynamic access to content pages, editing content, generate content page quickly, it is natural.
5. Testing is done by the sub-table to test, in the real webmaster to do the site, it is impossible to start from the site content of the table. So this is completely different from the real station situation.
The test stickers, like the official ones, are misleading and have been hanging for years. For those who do not know the technology, is a kind of misleading, let ordinary users blindly worship.
2, Dedecms
Beta version: Dedecms V5.7 SP1_GBK official version? (current official latest version)
Weaving dream cms in the Knowledge CMS has been recognized as the worst load performance cms, really poor.
When I import 100W data, the database size is only 330M, and the first page access already takes 70 seconds-80 seconds to access.
3, Phpcms
Beta version: Phpcms V9_GBK official version? (current official latest version)
Phpcms is now being re-developed by the new team and is also known as high load.
When I import 100W data, the database size is 3G and the first page access takes 20 seconds.
4, Phpwind
Beta version: Phpwind v9.0 UTF-8 official version (current official latest version)
Phpwind before and discuz, speed advantage, is now said to be a new development, the new version has really made a lot of changes (has been discuz followers, and discuz design difference is not very big), now this change, should value the praise, but now the speed is not as good as discuz, At the bottom of the page, the execution time is removed.
When I import 1000W data, the database size is 13G,
First time access 8 seconds, second access 0.70477390289307 seconds
Post List page (default sort) 0.2x-0.5x seconds?? But I used to sort by "latest posts", took 182 seconds to show (I looked at the database design, because only did the "last reply" index, "post time" is not indexed, so it is very slow)?
Post content page, not filled with how many replies are not specifically tested
5, Discuz
Beta version: Discuz_x2.5_sc_utf8? Discuz_x3.0_sc_utf8
DX3 seems to be the dx2.5 of the enhanced version, from the backstage, the front desk design, have changed little. The database schema has changed a little.
When I import 1000W data, the database size is 18G,
Home 0.05-0.06 seconds, (also not much test value, because neither read the thread table)
Posts List page (default sort) 0.07-0.09 seconds? But I used to sort by "posting time", took 181 seconds to show up (I looked at the database design, because only done by the "last reply" index, "post time" sort did not index, so it is very slow)?
Post content page, (not filled with how many replies are not specifically tested)
6, Xiuno
Beta version: Xiuno BBS 2.02 UTF8
When I import 1000W data, the database size is 15G
Home 0.03-0.05 seconds
Posts List page 0.03-0.05 seconds (Huitie sort)??? 0.01-0.03 seconds (post sort)
Post content page 0.03-0.05 seconds? (not filled with many replies and no specific test page)
When I import 100 million data, the database is populated to 215G
Home 0.05-0.08 seconds
Posts List page 0.05-0.08 seconds (Huitie sort)???? 0.03-0.05 seconds (post sort)
Post content page 0.05-0.08 seconds? (not filled with many replies and no specific test page)
Summarize:
Xiuno Although the load is very high, but the function of a great control, removed a lot of features that may affect performance, functional aspects I think if you can have a platform like WordPress to compensate, it will have a very big advantage.
Discuz Although did not do in-depth testing, but already visible load is still defective, and the thread table design for Tid mediumint (8) UNSIGNED so the maximum value is 16777215, so his design is not to be considered higher.
Phpwind This new version of the change, to prove their determination, and discuz to go a different way, but also can see that they pay more attention to the user experience. Program performance has been followed.
PHPCMS performance is higher than before, but the user experience I am not feeling very well. But can explain CMS performance is inferior to BBS program. Because there are many sorts, and the same page list is more than the forum, so the CMS performance is inferior to BBS.
Imperial CMS Although the official program has always stressed the load, but it is not as good as phpcms, just through the table to increase the load, it is not an excellent way. I personally humble opinion, the program load is not high, the first step should be the correct design index, the index is not designed to, with the table to solve, but also to webmaster Manual setup, completely increase the use of difficulty.
Dedecms Although the user is very large, but the database design is not good, not only the index is not designed, but also not a table, but also can see that Dedecms did not consider to do high load, after all, hundreds of W-level data site very few.