本帖最后由 chenyucheng 于 2024-1-27 12:52 编辑
整数运算速度对比:
使用系统自带命令计算一亿次整数相加耗时: 266 毫秒
使用系统自带命令计算一亿次整数相减耗时: 249 毫秒
使用本支持库命令计算一亿次整数相加耗时: 1123 毫秒
使用本支持库命令计算一亿次整数相减耗时: 1202 毫秒
为什么我自己写的加减计算支持库的速度比系统自带命令慢?
支持库命令实现部分的C++/C语言代码:
[C++] 纯文本查看 复制代码
// 整数相加
extern "C"
void basiccalc_fnIntAdd (PMDATA_INF pRetData, INT nArgCount, PMDATA_INF pArgInf)
{
PMDATA_INF ArgInf = pArgInf + 1; //用来存储后面几个参数的指针变量
int n;
if (nArgCount = 2) { // 如果参数数量是2
n = pArgInf->m_int + ArgInf->m_int; // 直接将两个数相加
} else {
n = pArgInf->m_int;
// 获取第一个参数值,存入整数变量中
do
{
n += (ArgInf++)->m_int;
// 获取下一个参数值,计算本参数值与前面计算的值之和
}
while((ArgInf - pArgInf) < nArgCount);
// 如果当前指向参数相对于第一个参数的偏移数,小于参数总数,则继续循环
}
pRetData->m_int = n;
}
// 整数相减
extern "C"
void basiccalc_fnIntMin (PMDATA_INF pRetData, INT nArgCount, PMDATA_INF pArgInf)
{
PMDATA_INF ArgInf = pArgInf + 1; //同上一个函数中注释,不再重复叙述。
int n;
if (nArgCount = 2) {
n = pArgInf->m_int - ArgInf->m_int;
} else {
n = pArgInf->m_int;
do
{
n -= (ArgInf++)->m_int; // 计算本参数值与前面计算的值之差
}
while((ArgInf - pArgInf) < nArgCount);
}
pRetData->m_int = n;
}
用C++写过易语言支持库的, 能不能解答一下我的问题?
补充内容 (2025-1-23 12:17):
才发现,if 里面,一个等号,要换成两个。 |