Python vs C++ 极简性能对比

一句话结论
同样的计算任务,C++ 比 Python 快 10~100 倍,内存占用低 10 倍以上

📊 1. 核心对比表(一目了然)

维度测什么Python(脚本语言)C++(编译语言)预期差距
时间运行速度解释执行,慢编译为机器码,极快C++ 快 10~100 倍
空间内存占用整数是对象,带元数据直接用 long long,无额外开销C++ 内存 < 2MB,Python > 10MB

💻 2. 代码实操(复制即用,已修复格式 & 跨平台)

✅ Python 版(全平台通用)

# python_bench.pyimport time import psutil import os start_time = time.time()# 计算 0 + 1 + 2 + ... + 99,999,999 total =0for i inrange(100_000_000): total += i end_time = time.time()# 获取内存(MB) process = psutil.Process(os.getpid()) memory_mb = process.memory_info().rss /1024/1024print(f"🐍 Python 结果: {total}")print(f"⏱️ Python 耗时: {end_time - start_time:.4f} 秒")print(f"💾 Python 内存: {memory_mb:.2f} MB")
🔧 依赖安装pip install psutil

✅ C++ 版(支持 Windows + Linux/macOS)

// cpp_bench.cpp#include<iostream>#include<chrono>#ifdef_WIN32#include<windows.h>#include<psapi.h>voidprintMemoryUsage(){ PROCESS_MEMORY_COUNTERS pmc;if(GetProcessMemoryInfo(GetCurrentProcess(),&pmc,sizeof(pmc))){ std::cout <<"💾 C++ 内存: "<< pmc.WorkingSetSize /1024.0/1024.0<<" MB"<< std::endl;}}#else#include<sys/resource.h>voidprintMemoryUsage(){structrusage usage;getrusage(RUSAGE_SELF,&usage); std::cout <<"💾 C++ 内存: "<< usage.ru_maxrss /1024.0<<" MB"<< std::endl;// ru_maxrss is in KB on Linux/macOS}#endifintmain(){auto start = std::chrono::high_resolution_clock::now();longlong total =0;for(longlong i =0; i <100'000'000;++i){ total += i;}auto end = std::chrono::high_resolution_clock::now();auto duration = std::chrono::duration_cast<std::chrono::milliseconds>(end - start); std::cout <<"🚀 C++ 结果: "<< total << std::endl; std::cout <<"⏱️ C++ 耗时: "<< duration.count()<<" 毫秒"<< std::endl;printMemoryUsage();return0;}
🔧 编译命令Windows (MSVC)cl /EHsc /std:c++17 cpp_bench.cppLinux/macOS (GCC/Clang)g++ -O2 -std=c++17 cpp_bench.cpp -o cpp_bench

▶️ 3. 如何运行 & 预期结果

步骤:

  1. 保存 Python 代码为 python_bench.py,运行:python python_bench.py
  2. 编译 C++ 代码,运行生成的可执行文件。
  3. 对比输出!

🎯 典型结果(Intel i7, 16GB RAM):

🐍 Python 结果: 4999999950000000 ⏱️ Python 耗时: 4.8231 秒 💾 Python 内存: 12.45 MB 🚀 C++ 结果: 4999999950000000 ⏱️ C++ 耗时: 32 毫秒 💾 C++ 内存: 1.2 MB 
💥 性能差距:C++ 快 150 倍,内存 少 10 倍

💡 总结

  • Python:开发快、写法简单,适合原型、脚本、数据分析。
  • C++:性能极致、资源可控,适合高频交易、游戏引擎、底层工具链。
选对工具,事半功倍!

Read more

【leetcode】队列 + 宽搜,树形结构层序遍历的基础与变化

【leetcode】队列 + 宽搜,树形结构层序遍历的基础与变化

前言 🌟🌟本期讲解关于力扣的几篇题解的详细介绍~~~ 🌈感兴趣的小伙伴看一看小编主页:GGBondlctrl-ZEEKLOG博客 🔥 你的点赞就是小编不断更新的最大动力                                        🎆那么废话不多说直接开整吧~~   目录 📚️1.N叉树的层序遍历 🚀1.1题目描述 🚀1.2思路讲解 🚀1.3题目代码 📚️2.二叉树锯齿形遍历 🚀2.1题目描述 🚀2.2思路讲解 🚀2.3题目代码 📚️3.二叉树最大宽度 🚀3.1题目描述 🚀3.2思路讲解 🚀3.3题目代码 📚️4.总结 📚️1.N叉树的层序遍历 🚀1.1题目描述 给定一个 N 叉树,返回其节点值的层序遍历。(即从左到右,逐层遍历)。 树的序列化输入是用层序遍历,每组子节点都由 null 值分隔(参见示例)。 如下图所示: 输入:

By Ne0inhk
【数据结构】队列的完整实现

【数据结构】队列的完整实现

队列的完整实现 * 队列的完整实现 * github地址 * 前言 * 1. 队列的概念及其结构 * 1.1 概念 * 1.2 组织结构 * 2. 队列的实现 * 接口一览 * 结构定义与架构 * 初始化和销毁 * 入队和出队 * 取队头队尾数据 * 获取size和判空 * 完整代码与功能测试 * 结语 队列的完整实现 github地址 有梦想的电信狗 前言 队列(Queue)作为一种基础且重要的数据结构,在计算机科学中扮演着关键角色。无论是操作系统的任务调度、网络数据包的管理,还是算法中的广度优先搜索(BFS),队列的“先进先出”(FIFO)特性都使其成为不可或缺的工具。理解队列的实现原理,不仅能帮助开发者更高效地处理数据,还能为后续学习复杂的数据结构打下坚实基础。 本文将以 链式结构 为核心,详细介绍队列的完整实现。从结构设计、接口定义到功能测试,一步步剖析如何用C语言实现一个高效、健壮的队列。文章重点讲解入队(

By Ne0inhk

优选算法——位运算

👇作者其它专栏 《数据结构与算法》《算法》《C++起始之路》 1.前要知识 《位操作符的妙用》 2.相关题解 2.1判定字符是否唯一 算法思路: 利用【位图】的思想,每一个【比特位】代表一个【字符】,一个int类型的变量的32位足够表示所有的小写字母。比特位里若为0,表示这个字符没有出现过;若为1,表示该字符出现过。 可以用一个【整数】来充当【哈希表】。 class Solution { public: bool isUnique(string astr) { //利用鸽巢原理优化 if(astr.size()>26) return false; int bitmap=0; for(auto i:

By Ne0inhk
Flutter 三方库 crypto 的鸿蒙化适配指南 - 实现具备工业级哈希算法与消息摘要计算的安全底座、支持端侧数据校验与数字签名实战

Flutter 三方库 crypto 的鸿蒙化适配指南 - 实现具备工业级哈希算法与消息摘要计算的安全底座、支持端侧数据校验与数字签名实战

欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.ZEEKLOG.net Flutter 三方库 crypto 的鸿蒙化适配指南 - 实现具备工业级哈希算法与消息摘要计算的安全底座、支持端侧数据校验与数字签名实战 前言 在进行 Flutter for OpenHarmony 开发时,确保数据的一致性与安全性是业务上线的先决条件。无论是对用户密码进行加盐哈希存储、验证下载文件的完整性,还是为分布式信令生成 API 签名,都离不开严谨的加密算法支持。crypto 是 Dart 官方生态中用于处理哈希与摘要的核心工具库。本文将探讨如何在鸿蒙端构建极致、稳健的加密算法基石。 一、原直观解析 / 概念介绍 1.1 基础原理 该库提供了一系列纯 Dart 实现的一致性哈希算法(Hash Algorithims)。它通过将任意长度的输入映射为固定长度的二进制摘要(Digest)。支持流式处理(Chunked processing),即允许在读取大文件时分批次泵送数据。在鸿蒙端。它是“

By Ne0inhk