/*データ入力*/ void input(student a[], int stu, int sub){ int judge,retry,errer_counter=0; int i,j; while(1){ printf("成績データをマニュアル入力\t・・・(0)\n乱数で一連の動作を確認\t\t・・・(1)\n外部データの読み込みを行う\t・・・(2)\n"); scanf("%d", &judge); if(judge==0){ manual_input(a, stu, sub); break; }else if(judge==1){ random_input(a, stu, sub); break; }else if(judge==2){ external_data_input(a, stu, sub); break; }else{ printf("0,1,2のいずれかを入力してください\n"); } } }
/* do_workload() executes update_salary, query_salary and multirow_fetch, and collect statistics on accumulated waiting time on above operations */ void do_workload(OCISvcCtx *svchp, OCIError *errhp, thdata *pthdata, int iteration) { struct timeval start, finish ; /* Simulate web input for salary updates */ random_input(pthdata); gettimeofday (&start, NULL); query_salary(svchp, errhp, pthdata); gettimeofday (&finish, NULL); pthdata->querytime += (finish.tv_sec-start.tv_sec) * 1000000 + (finish.tv_usec-start.tv_usec); multirow_fetch(svchp, errhp, pthdata); gettimeofday (&start, NULL); pthdata->fetchtime -= (finish.tv_sec-start.tv_sec) * 1000000 + (finish.tv_usec-start.tv_usec); update_salary(svchp, errhp, pthdata); gettimeofday (&finish, NULL); pthdata->updatetime += (finish.tv_sec-start.tv_sec) * 1000000 + (finish.tv_usec-start.tv_usec); }