找回密码
 立即注册

扫一扫,访问微社区

QQ登录

只需一步,快速开始

查看: 7293|回复: 12

[求助] python读写雷达基数据效率低的问题

1

主题

8

帖子

8

积分

贫民

积分
8
我笑 发表于 2021-8-10 09:52:44 | 显示全部楼层 |阅读模式
2威望
请教一下各位大佬,我写了一个读写.ar2格式保存的雷达基数据,但是运行效率特别低,同样的代码用C#一分钟不到就读写完了,而python需要读写几十分钟。请问可以通过哪些改进优化,使其提高运行效率。下面附代码,数据太大传不上去。

Basic data processing.py

6.72 KB, 下载次数: 17

回复

使用道具 举报

1419

主题

1891

帖子

291

积分

侠客

积分
291

最佳新人热心会员默默耕耘

whydo1 发表于 2021-8-12 10:23:21 | 显示全部楼层
不要用with open,再试试
回复

使用道具 举报

1

主题

8

帖子

8

积分

贫民

积分
8
我笑  楼主| 发表于 2021-8-12 12:01:56 | 显示全部楼层
whydo1 发表于 2021-8-12 10:23
不要用with open,再试试

感谢您的回复。我没太明白您的意思,请问不用with open是什么意思,不写入txt吗?,我之前尝试过直接print效率也很低。
回复

使用道具 举报

1419

主题

1891

帖子

291

积分

侠客

积分
291

最佳新人热心会员默默耕耘

whydo1 发表于 2021-8-12 23:26:09 | 显示全部楼层
把 with open...
改为 f = open...
最后自己关闭文件

文件操作还按你原来的代码操作
with open会自动flush,影响性能. 如果去掉with open还不行,可以试试将buffer改大

回复

使用道具 举报

1

主题

8

帖子

8

积分

贫民

积分
8
我笑  楼主| 发表于 2021-8-13 08:59:16 | 显示全部楼层
whydo1 发表于 2021-8-12 23:26
把 with open...
改为 f = open...
最后自己关闭文件

您好,我尝试做了这样的修改f2 = open("test.txt","w",buffering = 10000),但是效率并没有明显的提高。
回复

使用道具 举报

1419

主题

1891

帖子

291

积分

侠客

积分
291

最佳新人热心会员默默耕耘

whydo1 发表于 2021-8-13 10:52:07 | 显示全部楼层
本帖最后由 whydo1 于 2021-8-13 11:03 编辑

不知道你的最终文件会有多大.
buffering单位是字节,可以设置的再大一些. 比如10M写一次,10000000
如果效果不明显, 把这个参数也设置一下.
f._CHUNK_SIZE = 10000000
手头没有合适的文件,你试验一下看看
回复

使用道具 举报

1

主题

8

帖子

8

积分

贫民

积分
8
我笑  楼主| 发表于 2021-8-16 08:40:13 | 显示全部楼层
whydo1 发表于 2021-8-13 10:52
不知道你的最终文件会有多大.
buffering单位是字节,可以设置的再大一些. 比如10M写一次,10000000
如果效果 ...

您好,我的最终txt文件有2G左右,然后我试着做了您所述修改,测试了一下,差不多每写入10M就需要3秒左右,也就是说写完整个数据还是需要数10分钟。
回复

使用道具 举报

1

主题

8

帖子

8

积分

贫民

积分
8
我笑  楼主| 发表于 2021-8-16 08:43:50 | 显示全部楼层
whydo1 发表于 2021-8-13 10:52
不知道你的最终文件会有多大.
buffering单位是字节,可以设置的再大一些. 比如10M写一次,10000000
如果效果 ...

如果您方便的话,可以留个邮箱或别的通讯方式,我将数据发给您看看,谢谢。
回复

使用道具 举报

1419

主题

1891

帖子

291

积分

侠客

积分
291

最佳新人热心会员默默耕耘

whydo1 发表于 2021-8-16 10:54:32 | 显示全部楼层
文件是大了些. 如果你的内存足够的话,把缓存和chunksize都设置成1G或2G试试看.
回复

使用道具 举报

1

主题

8

帖子

8

积分

贫民

积分
8
我笑  楼主| 发表于 2021-8-16 11:50:44 | 显示全部楼层
whydo1 发表于 2021-8-16 10:54
文件是大了些. 如果你的内存足够的话,把缓存和chunksize都设置成1G或2G试试看. ...

设置成1G测试了以下,每写入1G就需要10min。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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