当前位置:首页> 百度 > 优化代码以实现最大处理速度

推荐文章

栏目导航

    百度


在线客服质询



真快排-小黄 真快排-小林

真快排-小黄 真快排-小林

友情链接

真快排 飞快排 搜狗快排 快速排名 面条批发

文章正文

您当前位置:快速排名软件 > 行业资讯 > 正文

优化代码以实现最大处理速度

浏览量: 460 发布时间:21-01-03

    fitsio主页 下一个: fitsio阵列大小限制 向上: 编程准则 以前: 当最终尺寸 优化代码以实现最大处理速度 设计软件时要小心,以在处理fits数据文件时达到最佳性能。以下各段描述了一些可用于提高使用fitsio的软件的处理速度的策略。 1.处理fits主数组或image扩展名时,一次读取或写入大块图像效率更高。



    在fits文件中读取或写入大块连续数据时(至少3个fits块= 8640字节) )fitsio绕过它用于小块数据的内部缓冲区(例如,在读取fits关键字时)。因为没有将数据复制到中间缓冲区,所以这样做效率更高。 2.处理fits表时,软件设计中最重要的效率因素是一次通过fits文件读取或写入fits文件中的数据。


    程序设计不佳的一个例子是,先依次读取第一列,然后再返回以读取第二列,最后是第三列,以读取一个大的三列表。显然,这需要3次通过文件,这可能会使i / o受限程序的执行时间增加三倍。对于小表来说,这并不重要,但是当读取数兆字节的表时,这些低效率可能会变得很明显。


    在这种情况下,效率更高的过程是只读取或写入表中尽可能多的行,以容纳可用的内部i / o缓冲区,然后访问该行范围内的所有必要数据列。这些行中的数据可以继续移动到下一个适合缓冲区的行范围,以这种方式继续进行,直到处理完整个文件为止。通过使用这种并行访问而不是顺序访问atable的所有列的过程,fits文件的每个块将只被读取或写入一次。


     在给定表中一次读取或写入的最佳行数取决于表行的宽度,fitsio中已分配的i / o缓冲区的数目以及在以下位置打开的其他fits文件的数目同一时间(因为每个打开的fits文件始终保留一个i / o缓冲区)。幸运的是,可以使用fitsioroutine来返回给定表的最佳行数:调用ftgrsz(unit,nrows,status)。只要不超过此值,准确使用此例程返回的nrows的值就无关紧要。