解析大文本文件Python vs c#

2024-09-29 23:29:22 发布

您现在位置:Python中文网/ 问答频道 /正文

解析8GB文本文件的最快方法是什么?Python的性能能与c相媲美吗?在

exampledomain NS ns.anameserver.com.
exampledomain NS ns2.anameserver.com.
exampledomain NS ns3.anameserver.com.
anotherdomain NS ns1.nameservers.com.
cooldomain NS ns.example.com.
cooldomain NS ns2.example.com.

我需要解析每一行并用每行的第一项和第三项更新数据库表,忽略每行中的NS。在


Tags: 方法comexample性能ns文本文件ns1ns2
2条回答

解析性能在这里几乎肯定是完全无关的。我希望他们的贡献是:

  • 用于写入数据的数据库访问
  • 读取数据的磁盘访问
  • 解析CPU

按照这个顺序,每个项目之间可能有一个数量级的差异,这取决于数据库是否是本地的(以及网络的速度等)和磁盘类型(如果是SSD,速度会快得多)。在

我希望Python和C都能很好地解决这一问题,假设它们都有相当高效的数据库驱动程序,可以使用任何一种更容易维护的语言。在

请注意,虽然您当然可以利用某些并行性,但如果网络最终成为瓶颈,则可能不会有太大的区别。批处理数据库写入可能更重要——这是你应该尝试的一点,IMO

类似这样的方法会起作用:

ins = open( "file.txt", "r" )
for line in ins:
    linesplit = line.split(" ")
    # linesplit should contain your 3 elements which you can then insert into your db
  • 如果需要先修剪线,可以使用“修剪”进行修剪

性能限制很可能是数据库的写入/插入速度。在

如果您使用的是mysql,可以使用“insert delayed”来加快插入过程,因为这将立即分派查询并返回。在

您还可以在执行插入操作时禁用索引(如果不需要primary/unique),这也可以提高db insert的性能。在

如果要进行更新,请确保已为查找列编制索引。在

在c,它会是这样的

^{pr2}$

我认为这两种语言的性能实际上是相同的,而且内存占用的开销比c#有优势。你应该两个都试一下,然后汇报。在

相关问题 更多 >

    热门问题