天气与日历 切换到窄版

 找回密码
 立即注册
中国膜结构网
十大进口膜材评选 十大国产膜材评选 十大膜结构设计评选 十大膜结构公司评选
查看: 12|回复: 0

typedef struct Point { int x; int y; }Point; //若点a大于点b,即...

[复制链接]

该用户从未签到

主题

0

回帖

2912

积分

管理员

积分
2912
发表于 2024-6-22 09:46:18 | 显示全部楼层 |阅读模式
目前,存在着各种计时函数,一般的处理都是先调用计时函数,记下当前时间tstart,然后处理一段程序,再调用计时函数,记下处理后的时间tend,再tend和tstart做差,就可以得到程序的执行时间,但是各种计时函数的精度不一样.下面对各种计时函数,做些简单记录.

  方法1,time()获取当前的系统时间,返回的结果是一个time_t类型,其实就是一个大整数,其值表示从CUT(Coordinated Universal Time)时间1970年1月1日00:00:00(称为UNIX系统的Epoch时间)到当前时刻的秒数.   

复制代码
void test1()
{
    time_t start,stop;
    start = time(NULL);
    foo();//dosomething
    stop = time(NULL);
    printf("Use Time:%ld\n",(stop-start));
}
复制代码
  方法2,clock()函数返回从“开启这个程序进程”到“程序中调用clock()函数”时之间的CPU时钟计时单元(clock tick)数,在MSDN中称之为挂钟时间(wal-clock)

常量CLOCKS_PER_SEC,它用来表示一秒钟会有多少个时钟计时单元

复制代码
void test2()
{
    double dur;
    clock_t start,end;
    start = clock();
    foo();//dosomething
    end = clock();
    dur = (double)(end - start);
    printf("Use Time:%f\n",(dur/CLOCKS_PER_SEC));
}
复制代码
       方法3,timeGetTime()函数以毫秒计的系统时间。该时间为从系统开启算起所经过的时间,是windows api

复制代码
void test3()
{
    DWORD t1,t2;
    t1 = timeGetTime();
    foo();//dosomething
    t2 = timeGetTime();
    printf("Use Time:%f\n",(t2-t1)*1.0/1000);
}
复制代码
        方法4,QueryPerformanceCounter()这个函数返回高精确度性能计数器的值,它可以以微妙为单位计时.但是QueryPerformanceCounter()确切的精确计时的最小单位是与系统有关的,所以,必须要查询系统以得到QueryPerformanceCounter()返回的嘀哒声的频率.QueryPerformanceFrequency()提供了这个频率值,返回每秒嘀哒声的个数.

复制代码
void test4()
{
    LARGE_INTEGER t1,t2,tc;
    QueryPerformanceFrequency(&tc);
    QueryPerformanceCounter(&t1);
    foo();//dosomething
    QueryPerformanceCounter(&t2);
    printf("Use Time:%f\n",(t2.QuadPart - t1.QuadPart)*1.0/tc.QuadPart);
}
复制代码
         方法5,GetTickCount返回(retrieve)从操作系统启动到现在所经过(elapsed)的毫秒数,它的返回值是DWORD

复制代码
void test5()
{
    DWORD t1,t2;
    t1 = GetTickCount();
    foo();//dosomething
    t2 = GetTickCount();
    printf("Use Time:%f\n",(t2-t1)*1.0/1000);
}
复制代码
         方法6,RDTSC指令,在Intel   Pentium以上级别的CPU中,有一个称为“时间戳(Time   Stamp)”的部件,它以64位无符号整型数的格式,记录了自CPU上电以来所经过的时钟周期数。由于目前的CPU主频都非常高,因此这个部件可以达到纳秒级的计时精度。这个精确性是上述几种方法所无法比拟的.在Pentium以上的CPU中,提供了一条机器指令RDTSC(Read   Time   Stamp   Counter)来读取这个时间戳的数字,并将其保存在EDX:EAX寄存器对中。由于EDX:EAX寄存器对恰好是Win32平台下C++语言保存函数返回值的寄存器,所以我们可以把这条指令看成是一个普通的函数调用,因为RDTSC不被C++的内嵌汇编器直接支持,所以我们要用_emit伪指令直接嵌入该指令的机器码形式0X0F、0X31

复制代码
inline unsigned __int64 GetCycleCount()
{
    __asm
    {
        _emit 0x0F;
        _emit 0x31;
    }
}

void test6()
{
    unsigned long t1,t2;
    t1 = (unsigned long)GetCycleCount();
    foo();//dosomething
    t2 = (unsigned long)GetCycleCount();
    printf("Use Time:%f\n",(t2 - t1)*1.0/FREQUENCY);   //FREQUENCY指CPU的频率
}
复制代码
  方法7,gettimeofday() linux环境下的计时函数,int gettimeofday ( struct timeval * tv , struct timezone * tz ),gettimeofday()会把目前的时间有tv所指的结构返回,当地时区的信息则放到tz所指的结构中.

复制代码
//timeval结构定义为:
struct timeval{
long tv_sec; /*秒*/
long tv_usec; /*微秒*/
};
//timezone 结构定义为:
struct timezone{
int tz_minuteswest; /*和Greenwich 时间差了多少分钟*/
int tz_dsttime; /*日光节约时间的状态*/
};
void test7()
{
    struct timeval t1,t2;
    double timeuse;
    gettimeofday(&t1,NULL);
    foo();
    gettimeofday(&t2,NULL);
    timeuse = t2.tv_sec - t1.tv_sec + (t2.tv_usec - t1.tv_usec)/1000000.0;
    printf("Use Time:%f\n",timeuse);
}
复制代码
  方法8,linux环境下,用RDTSC指令计时.与方法6是一样的.只不过在linux实现方式有点差异.

复制代码
#if defined (__i386__)
static __inline__ unsigned long long GetCycleCount(void)
{
        unsigned long long int x;
        __asm__ volatile("rdtsc":"=A"(x));
        return x;
}
#elif defined (__x86_64__)
static __inline__ unsigned long long GetCycleCount(void)
{
        unsigned hi,lo;
        __asm__ volatile("rdtsc":"=a"(lo),"=d"(hi));
        return ((unsigned long long)lo)|(((unsigned long long)hi)<<32);
}
#endif

void test8()
{
        unsigned long t1,t2;
        t1 = (unsigned long)GetCycleCount();
        foo();//dosomething
        t2 = (unsigned long)GetCycleCount();
        printf("Use Time:%f\n",(t2 - t1)*1.0/FREQUENCY); //FREQUENCY  CPU的频率
}
复制代码
简单的比较表格如下

序号        函数        类型        精度级别        时间
1        time        C系统调用        低        <1s
2        clcok        C系统调用        低        <10ms
3        timeGetTime        Windows API        中        <1ms
4        QueryPerformanceCounter        Windows API        高        <0.1ms
5        GetTickCount        Windows API        中        <1ms
6        RDTSC        指令        高        <0.1ms
7        gettimeofday         linux环境下C系统调用        高        <0.1ms

  总结,方法1,2,7,8可以在linux环境下执行,方法1,2,3,4,5,6可以在windows环境下执行.其中,timeGetTime()和GetTickCount()的返回值类型为DWORD,当统计的毫妙数过大时,将会使结果归0,影响统计结果.
        测试结果,windows环境下,主频为1.6GHz,单位为秒.

1 Use Time:0
2 Use Time:0.390000
3 Use Time:0.388000
4 Use Time:0.394704
5 Use Time:0.407000
6 Use Time:0.398684
  linux环境下,主频为2.67GHz,单位为秒

1 Use Time:1
2 Use Time:0.290000
7 Use Time:0.288476
8 Use Time:0.297843
      由于time()计时函数的精度比较低,多次运行程序时,将会得到不同的结果,时而为0,时而为1

foo()函数如下:

复制代码
void foo()
{
    long i;
    for (i=0;i<100000000;i++)
    {
        long a= 0;
        a = a+1;
    }
}
复制代码

 

 

 

 

typedef struct Point {     int x;     int y; }Point; //若点a大于点b,即...

该用户从未签到

主题

0

回帖

0

积分

管理员

积分
0
发表于 2024-7-28 09:28:43 | 显示全部楼层
  法拉利膜材作为一种高性能的建筑材料,在建筑、汽车及广告等多个领域有着广泛的应用。以下是对法拉利膜材型号、特点及优点的详细分析:
[img]http://www.mjgou.com/data/attachment/forum/202403/13/223041uiqmeujen4jjj6zv.jpg[/img]
[b]一、法拉利膜材型号[/b]
法拉利膜材有多种型号,包括但不限于以下几种:1302 S2 Flexlight Advanced:这是一种高性能IV型柔性复合膜材,以其卓越的透光性、耐久性和易维护性而受到青睐。942、1202 S2、1002 S2、902 S2、1212 S2、912 S2:这些型号同样属于法拉利膜材系列,各自具有不同的特性和适用范围,但具体特点需根据具体型号进一步分析。需要注意的是,法拉利膜材的型号可能随着产品更新换代而有所变化,具体型号及其特性请参考最新产品资料。
[img=860,1255]http://www.mjgou.com/data/attachment/forum/202403/13/223254bbblwlbvbvsbwlsl.jpg[/img]
[b]二、法拉利膜材特点[/b]
法拉利膜材的特点主要体现在以下几个方面:
1、高强度与耐用性:法拉利膜材采用高强度材料制成,具有良好的抗拉强度和撕裂强度,能够承受较大的外力作用而不易破损。耐用性强,能够在恶劣气候条件下保持稳定的性能,延长使用寿命。
2、透光性与美观性:部分型号如1302 S2 Flexlight Advanced具有高透光性,能够在保持室内光线充足的同时,提供清晰的视野。膜材表面平整光滑,色彩丰富多样,能够满足不同建筑和装饰需求,提升整体美观性。
3、轻质与灵活性:法拉利膜材重量较轻,便于运输和安装,能够降低施工成本和时间。膜材具有一定的柔韧性,能够适应各种复杂形状和结构的设计要求。
4、环保与可回收性:法拉利膜材符合环保要求,部分材料可回收利用,减少了对环境的影响。
[img]http://www.mjgou.com/data/attachment/forum/202403/13/223128owhn0099rrds5h5y.jpg[/img]
[b]三、法拉利膜材优点[/b]
法拉利膜材的优点主要体现在以下几个方面:
1、提升建筑性能:高强度与耐用性使得法拉利膜材能够提升建筑的稳定性和安全性,延长使用寿命。透光性与美观性使得建筑内部光线充足、视野开阔,同时提升整体美观度。
2、降低施工成本:轻质特性使得运输和安装成本降低,施工效率提高。膜材的柔韧性使得施工更加灵活多变,能够适应各种复杂地形和结构要求。
3、节能环保:部分材料可回收利用,符合环保要求,减少了对环境的影响。良好的透光性能够减少室内照明需求,降低能耗。
4、广泛应用领域:
法拉利膜材不仅适用于建筑领域(如体育设施、商业设施、文化设施、交通设施等),还广泛应用于汽车及广告领域(如高档车辆贴膜保护和装饰、广告招贴等),展现出其多功能的特性。

综上所述,法拉利膜材以其高强度、耐用性、透光性、美观性、轻质灵活性以及环保可回收性等优点,在建筑、汽车及广告等多个领域发挥着重要作用。具体型号的选择应根据实际需求和应用场景进行综合考虑。
[url=http://www.mjgou.com/forum-17-1.html][size=92656][color=Red]法拉利膜材中国代理商 - 膜结构网[/color][/size][/url]
typedef struct Point {     int x;     int y; }Point; //若点a大于点b,即...

该用户从未签到

主题

0

回帖

2

积分

新手上路

积分
2
发表于 2024-8-6 10:42:43 | 显示全部楼层
米勒膜材是一种高品质的建筑材料,广泛应用于体育场馆、商业设施、文化设施等多个领域。以下是对米勒膜材的详细分析:
[b]一、品牌背景与实力[/b]
米勒膜材是由德国或其他地区的米勒公司(具体品牌归属可能因市场不同而有所差异)生产的高性能膜材。这些公司通常具有多年的生产经验和强大的技术实力,致力于研发和生产高品质的膜材产品。米勒膜材凭借其优异的性能和广泛的应用领域,在市场上享有很高的声誉。
[b]二、产品特点[/b]
高强度与耐久性:米勒膜材通常具有较高的抗拉强度和撕裂强度,能够承受较大的外力作用而不易损坏。同时,其耐久性能优异,能够在各种恶劣环境下长期使用。
耐候性:膜材具有良好的耐候性,能够抵抗紫外线、高温、低温等极端天气条件的侵蚀,保持长久的色彩鲜艳和材料性能。
自洁性:部分米勒膜材表面经过特殊处理,具有良好的自洁性能。雨水能够在膜材表面自然流淌,带走灰尘和污染物,保持膜材的清洁和美观。
透光性与隔热性:膜材对自然光的透射率较高,同时具有良好的隔热性能。在保持室内光线充足的同时,还能有效减少热量传递,提高室内舒适度。
环保性:米勒膜材注重环保性能,采用环保材料制造,符合国际环保标准。部分产品还具有可回收再利用的特点,有助于减少资源浪费和环境污染。
[b]三、产品系列与型号[/b]
米勒膜材的产品系列丰富,包括不同厚度、不同材质的膜材产品。常见的型号有FR700、FR900、FR1000、FR1100、FR1200等。这些型号在性能上略有差异,以满足不同应用场景的需求。例如,FR1200型号可能具有更高的强度和耐久性,适用于大型体育场馆等需要承受较大荷载和恶劣环境的场所。
[b]四、应用领域[/b]
米勒膜材广泛应用于多个领域,包括但不限于:
体育设施:如体育场、体育馆、健身中心等,为观众和运动员提供舒适的环境。
商业设施:如购物中心、餐厅、酒店等,提升商业空间的美观度和实用性。
文化设施:如展览中心、剧院、博物馆等,为文化活动提供优雅的空间氛围。
交通设施:如机场、火车站、公交车站等,为旅客提供便捷的出行体验。
[b]五、技术创新与发展[/b]
米勒膜材生产商一直致力于技术创新和产品研发。通过引进先进的生产设备和技术,不断提升产品的质量和性能。同时,还注重与国内外知名科研院校、膜结构公司等进行技术交流和合作,共同推动膜材行业的发展和进步。
[b]六、总结[/b]
米勒膜材作为一种高品质的建筑材料,以其优异的性能和广泛的应用领域在市场上占据重要地位。随着科技的不断进步和市场的不断发展,米勒膜材的应用前景将更加广阔。在选择膜材产品时,建议充分考虑项目的具体需求和预算情况,选择性价比最高的产品。

 

 

 

 

typedef struct Point {     int x;     int y; }Point; //若点a大于点b,即...
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|中国膜结构网|中国膜结构协会|进口膜材|国产膜材|ETFE|PVDF|PTFE|设计|施工|安装|车棚|看台|污水池|中国膜结构网_中国空间膜结构协会

GMT+8, 2024-11-1 11:46 , Processed in 0.153495 second(s), 27 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表