• 技术文章 >后端开发 >Python教程

    为什么C++读取文件会比Python慢?

    2016-06-06 16:22:37原创838
    问题是这样的,我有一个文件夹大概有10万行数据,然后用C++和Python分别其数出有多少行数据是符合要求的。因为不知道什么原因,C++和Python总是只能数出其中的七千多行就结束了,然后我就用了文件指针定位来解决了这个问题,然后C++和Python写的两个程序都能正常运行和计算了。但是我发现C++运行出结果需要29秒,而Python只需要7秒。为什么会这样
    PS:C++我用的是getline函数,而Python我用的是readlines函数。
    另外有个问题就是在另一个每一行不等长的文件中,C++的指针定位为什么总是不像Python一样能够精准定位到文件尾,文件指针和getline函数搭配怎么使用。。。?求大神求大神。。。哭求。。。

    回复内容:

    因为 C++ 有「兼容 C」的历史包袱在。

    默认情况下 std::cin 每次操作后都要和 stdin 的缓冲区做同步,以便 iostream 和 stdio 混用。关掉这一行为即可大幅提升性能:
    std::ios_base::sync_with_stdio(false);
    
    就算是刘翔跑一步停一下,再跑一步再停一下,也没我连着跑一万米快…楼主你信还是不信 我觉得跟getline比较的应该是Python的readline函数,而不是readlines函数。 在优化大致相当的情况下,无非就是时间和空间的相互妥协。getline每次返回一行,也只用一行的内存。而readlines一次读取10万行,然后一行行给你。C++多花的时间是为他少花的内存付出的代价而已。 学习了
    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:Python getline readlines
    上一篇:主流的垃圾回收机制都有哪些? 下一篇:Python语言是不是有设计缺陷?
    VIP课程(WEB全栈开发)

    相关文章推荐

    • 【腾讯云】年中优惠,「专享618元」优惠券!• Python接口自动化测试必备基础之http协议详解• Python 3.11中的最佳新功能和功能修复• 实例详解Python面向对象的四大特征• Python数据分析之concat与merge函数(实例详解)• 一起聊聊Python的编码样式
    1/1

    PHP中文网