我有一个程序非常基本,只有函数和变量,并执行一些计算。构建部分很好。只有cout,增加,等等非常基本的东西。从Linux到Windows的C/C++代码非常慢
在Linux,程序运行在Eclipse CDT的细,(在大约3-4秒中运行)
当程序上的Visual Studio 2010 C++视窗7中运行,把163秒 当程序运行在Windows 7 eclipse C++与MinGW,很多
这里发生了什么?!!?!
编辑:用于不能称之为C++,它只是很多的这里C函数,这里是从主()
foutput1 = fopen(FILENAME1, "w");
foutput2 = fopen(FILENAME2, "w");
solveSystem();
OutputStepToFile();
iter++;
do
{
temporalExternalChange(tim);
do
{
solveSystem();
iter++;
} while (iter<T_FOUT);
iter = 0;
OutputStepToFile();
tim+=dt*T_FOUT;
if (fmod(tim,T_PRINT)<=0.0){cout << "\nt=" << tim << "ms";};
} while(tim<T_TOTAL);
SolveSystem(代码)是以下的(局部的),其只是函数做计算一些变量:
void solveSystem()
{
fsGCcGMPformation(); // !cGMP formation
falp1AdAct_IP3form(); // !Norepinephrine receptor
fIVoCC(); // !Voltage dependent calcium current I_CaL
fIKv(); // !Delayed rectifier current I_K
fIBKCa(); // !Calcium-activated potassium
...
...
...
fVoltageChange();
performODEstep();
}
OutputStepToFile()函数是简单地用C风格的文件输出
void OutputStepToFile()
{
fprintf(foutput1,"%g %g %g %g %g %g %g %g ",V_m, tim, Ca_i, Na_i, K_i, Cl_i, Ca_u, Ca_r); // 1
fprintf(foutput1,"%g %g %g %g %g %g %g ",d_L, f_L, BKCa_a, KvD_a, KvD_i_slow, KvD_i_fast, KCNQ_a); // 8
fprintf(foutput1,"%g %g %g %g ",P_SOC, R_01, R_10, R_11); // 15
fprintf(foutput1,"%g %g %g %g %g %g %g %g %g\n", h_IP3, RS_G, RS_PG, G, IP3, PIP2, DAG, V_cGMP, cGMP); // 22
// Store Ca,K,Cl,Na ion channels
fprintf(foutput2,"%g %g %g %g %g %g %g %g %g ", I_CaL, I_CaT, I_BKCa, I_KvD, I_KCNQ, I_K2P, I_Kir, I_KATP, I_CaCC);
// Store ROCs/SOCs
fprintf(foutput2,"%g %g %g %g %g %g %g ", INa_NSC, IK_NSC, ICa_NSC, I_NSC, I_SOCNa, I_SOCCa, I_SOC);
// store SR dynamic currents, co-transporters, pumps and exchangers
fprintf(foutput2,"%g %g %g %g %g %g %g %g ", I_up, I_tr, I_rel, I_IP3, I_PMCA, I_NaK, I_NCX, I_NaKCl_Cl);
fprintf(foutput2,"%g %g %g %g %g %g\n", I_stim, V_cGMPbar, I_Catotm, I_Natotm, I_Cltotm, I_Ktotm);
}
没有看到用于编译它的代码和编译器开关,我们就像你一样无知。 –
您是否尝试过使用Win7 MinGW进行任何调试?只是为了检查,没有图书馆被包括或链接? – MartyE
@Insilico对不起,我已经包含了一些代码,但不知道它是否有帮助。正如你所看到的,他们非常简单。没有疯狂的文件输出屏幕或文件,因为我从代码中删除这些,程序仍然运行缓慢。我已经尝试了调试和发布。 “编译器开关用于编译它”是什么意思? – woosah