码迷,mamicode.com
首页 > 其他好文 > 详细

作业2

时间:2017-09-26 14:54:13      阅读:130      评论:0      收藏:0      [点我收藏+]

标签:重定向   分析   ota   ring   占用   play   ext   close   stdin   

一   对本周作业中的功能4(仅由文件重定向读入,不由控制台输入)做效能分析

               

               因为我是用c语言写的代码,所以重定向不难 只需要用freopen(“”文件路径“”,“”读写方式“”,"stdin")来做。结束的时候不要忘了fclose()就可以,例子如截图

                   技术分享            

              我个人认为效能分析是程序对cpu和内存占用的综合参数,完成这个功能真的很坎坷,我没做过测试,我做的功能是使用c++实现的,所以我下的是vc,我查了一下测试用vs,所以我下了个vs2012,花了我2个小时,安装的时候已经十点多了,晚上十二点还没有装完,所以我没有关机,早上发现没安装成功,心里非常烦躁。我早上6点就起来了。然后我又下了个vs2015这次下载3个小时,唯一感到庆幸的安装成功了。我上网百度了下怎么效能分析,操作如下 。

                            1 单击分析按钮

技术分享

                                2性能向导打钩

技术分享

                                3 选择cpu采样

 

技术分享

 

这样就开始进行了效能测试。

运行程序

 

技术分享
 1 #include<stdio.h>
 2 #include<string.h>
 3 #include<iostream>
 4 #include<fstream>
 5 #include<string>
 6 #include<map>
 7 #include <iomanip>
 8 using namespace std;
 9 int main()
10 {
11     FILE *fp;
12     char text[1024];
13     char s[100];
14     //gets(s);
15     printf(">wf -s < the_show_of_the_ring\n");
16     fp=freopen("d:\\是.txt","r",stdin);
17 //fp=freopen("功能4.FILE","r",stdout==NULL);
18     //fp=fopen(s,"r");
19     int n=0;
20     int i;
21     map<string,int>my_map;
22     while(fgets(text,1024,fp)!=NULL)
23     {
24 //        puts(text);
25         i=0;
26         while(text[i]!=\0)
27         {
28             char s[30];
29             int j=0;
30             while((text[i]>=a&&text[i]<=z)||(text[i]>=A&&text[i]<=Z))
31             {
32                 if(text[i]>=A&&text[i]<=Z)
33                 text[i]+=a-A;
34                 s[j++]=text[i++];  
35             }
36             s[j]=\0;
37             if(my_map[s]==0)
38             n++;
39             my_map[s]++;
40             if(text[i]==\0) break;
41             else
42             i++;
43         }
44          
45     }
46     fclose(fp);
47     map<string,int>::iterator it;
48     printf("\n\n");
49 //    printf(">wf  -s  test.txt\n");
50     cout<<"total"<<"  "<<n-1<<"  words"<<endl<<endl<<endl;
51     for(it=my_map.begin(),i=1;it!=my_map.end();it++,i++)
52     {
53         if(it->first=="")
54         continue;
55         cout<<left;
56         cout<<setw(10)<<it->first;
57         cout<<setw(10)<<it->second;
58         cout<<"                                                            ";
59         if(i%10==0) 
60       //  cout<<‘\n‘;
61       printf("\n");
62     }
63     cout<<\n;  
64     return 0;
65 }
View Code

 

 

 技术分享

效能分析的时候,我也当我把vc的代码粘贴到vs里面发下需要调一下程序,我改了两个vs里面的设置,具体没截图,很难受,分析结果如下:

1    cup使用百分比

技术分享

  技术分享

 

技术分享

 

技术分享

 

我在网上看的是摘要(S)  还有函数详细信息(D)

结果如下   技术分享

 

技术分享

 

 

二  要求 0 以战争与和平 作为输入文件,重定向(我觉得老师写错了)由文件系统读入连续三次运行,给出每次消耗时间,cpu参数。

 

1  

 技术分享技术分享技术分享

 

2

技术分享技术分享技术分享技术分享

 

3

 

   技术分享技术分享技术分享技术分享

要求一

 我觉得这段代码可以优化

技术分享
 1 while(fgets(text,1024,fp)!=NULL)
 2     {
 3 //        puts(text);
 4         i=0;
 5         while(text[i]!=\0)
 6         {
 7             char s[30];
 8             int j=0;
 9             while((text[i]>=a&&text[i]<=z)||(text[i]>=A&&text[i]<=Z))
10             {
11                 if(text[i]>=A&&text[i]<=Z)
12                 text[i]+=a-A;
13                 s[j++]=text[i++];  
14             }
15             s[j]=\0;
16             if(my_map[s]==0)
17             n++;
18             my_map[s]++;
19             if(text[i]==\0) break;
20             else
21             i++;
22         }
23          
24     }
View Code

可以把fgets()函数里面的数值变小,减小数组的存储空间

主函数由98.05%变成了97.76%

技术分享

 

技术分享

 

 

 要求2

                   通过profile找出程序的瓶颈。给出程序运行中最花费时间的三个函数(或代码片段)。要求包括截图。

                                    技术分享

 

我认为这三个函数最花费时间25853,此三个函数运行时间长,花费cpu多。

要求3

根据瓶颈,“”尽力而为“”地优化程序性能

这个不会改进

要求4

再次profile,给出在要求1中花费时间的三个函数此时的花费,要求包括截图。

技术分享

花费了25140秒

要求 5

程序运行时间,根据在教师的机器上运行的速度排名,分为三档。此题得分,第一档20分,第二档10分,第三档5飞,功能测试不能通过的,0分

作业2

标签:重定向   分析   ota   ring   占用   play   ext   close   stdin   

原文地址:http://www.cnblogs.com/tianjiing/p/7592695.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!