想知道 mysql 打开、选择和通用数据输出会更快:
A) 编译的 C++ 代码,通过 exec() (或等效的东西)调用
或
B) 直接 PHP 代码。
假设所有代码都同样用 C++ 和 PHP 编码。
做了测试: 这是C++
Document Length: 100000 bytes
Concurrency Level: 2
Time taken for tests: 0.139 seconds
Complete requests: 10
Failed requests: 0
Write errors: 0
Total transferred: 1001550 bytes
HTML transferred: 1000000 bytes
Requests per second: 71.76 [#/sec] (mean)
Time per request: 27.872 [ms] (mean)
Time per request: 13.936 [ms] (mean, across all concurrent requests)
Transfer rate: 7018.29 [Kbytes/sec] received
这是 PHP:
Concurrency Level: 2
Time taken for tests: 4.115 seconds
Complete requests: 10
Failed requests: 0
Write errors: 0
Total transferred: 1001550 bytes
HTML transferred: 1000000 bytes
Requests per second: 2.43 [#/sec] (mean)
Time per request: 822.924 [ms] (mean)
Time per request: 411.462 [ms] (mean, across all concurrent requests)
Transfer rate: 237.71 [Kbytes/sec] received
这是程序(我没有包含 MySql 代码 - 只是想看看使用基本代码是否可以更快地创建堆栈)。
C++
#include <iostream>
#include <sstream>
#include <string>
using namespace std;
int main()
{
stringstream x;
//string x;
for (int i = 0; i < 100000; ++i)
{
x << "X";
}
cout << x.str();
return 0;
}
这是 PHP:
for ($i=0; $i<100000; ++$i)
{
$x = $x . "X";
}
echo $x;
不知道使用 stringsteam 是否是一个公平的测试...想法?我的想法是,无论新的堆栈实例和 mysql 连接如何,C++ 都会更快。
编辑:
用这个测试:
#include <iostream>
#include <sstream>
#include <string>
using namespace std;
int main()
{
//stringstream x;
string x;
for (int i = 0; i < 100000; ++i)
{
x = x + "X";
}
cout << x;
return 0;
}
而且,还要更快!
Concurrency Level: 2
Time taken for tests: 0.115 seconds
Complete requests: 10
Failed requests: 0
Write errors: 0
Total transferred: 1740 bytes
HTML transferred: 0 bytes
Requests per second: 86.98 [#/sec] (mean)
Time per request: 22.994 [ms] (mean)
Time per request: 11.497 [ms] (mean, across all concurrent requests)
Transfer rate: 14.78 [Kbytes/sec] received
编辑:
这里是调用C++文件的php程序
<?php
echo exec("./test");
最佳答案
所以让我们看看。让我们启动一个 shell,向它传递一些参数,这会启动另一个应用程序,该应用程序加载一系列 .so 库,然后连接到 mysql,执行操作,然后必须通过 printf() 返回可能巨大的输出 block 或等价的,然后必须反馈给 PHP,解析为纯文本,分解,然后变成某种连贯的结构。
这会比在 MySQL 中执行查询并将数据直接获取到 PHP 结构更快吗?
也许你应该测试一下...
关于php - 性能方面... exec(c++) 还是直接 PHP?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5944210/