用Python重写了C 语言实现的Solaris命令,代码减少90% 而性能提升17倍!

C#性能真相:从内存分配到SIMD优化的六大核心维度 C#作为现代通用编程语言,其性能表现常被误解为‘天生缓慢’,实则取决于对CLR运行时机制的理解与运用。本文围绕内存分配、垃圾回收、JIT编译、数值计算、IO模型和并发控制六大基础技术维度展开,深入解析托管语言在真实生产环境中的性能边界。重点涵盖Span<T>零拷贝、Vector<T>自动向量化、分代GC调优、Tiered JIT预热等关键能力,揭示C#在高并发Web服务、实时音视频处理及金融系统中达成亚毫秒级延迟的技术路径。内容兼顾原理深度与工程落地,适用于.NET开发者进行性能诊断、瓶颈定位与架构决策。 阅读详情

我修复了一个内存分配的错误,这个错误在该命令转为 64 位时会引起一些问题。在修复这个错误之后,我决定研究一下这段古老的 C 代码是否能在转换为 Python 实现后得到一些改进。

这段 C 代码大约有 800 行,但从 1988 年后就基本没有动过了,在编写这段代码的那个年代,用户数还相当少,很有可能用户信息是在 /etc/passwd 这个本地文件中或者在小型的 NIS 服务器上。

私信小编01  领取完整项目代码!

经过一番研究后,我发现 listusers 的算法基本上就是一些简单的集合操作。listusers 命令不带参数,它只是把排好序的用户列表输出到域名服务里,命令后的 -l 和 -g 选项用来过滤用户和组所在的列表。

我用 Python3 重写了 listusers,代码行数几乎只有原来代码的 1/10——由于 Python 本身包含了集合操作,而 C 版本代码自己使用链表实现了集合操作。

但是 Python 应该会更慢一些吗?结果证明不是。实际上,在我的数据库里(数据库里包含超过 10 万的用户)测试,它反而快了 17 倍。而且,我还肯定,当 Python 版本知道命令使用了 -l 和 -g 选项做过滤时,它不会把整个域名服务内容同时放进内存里。

改成 Python 后,我发现之前一个长期存在的 bug 变得很容易修复,即 listusers 不能正确地扩展嵌套组的问题。之前用 C 代码编写时,并不存在嵌套组这个概念,但是,使用 LDAP,嵌套组就可以实现了。

改成 Python 后,我还发现这 100 行 Python3 版本的代码将会很容易向前维护——尽管我希望 listusers 不需要再有什么更新,因为它的原有代码都已历经了好几十年!

PyCon 2012:Python 3迁移与virtualenv普及的关键转折点 Python 3迁移并非始于2015年,而是由PyCon 2012这一技术分水岭正式锚定——它标志着生态从‘能用’迈向‘敢用’的质变。其核心原理在于基础设施协同演进:virtualenv的稳定普及解决了依赖隔离难题,PyPI包数量突破7000个构建了可规模化的协作基础,Django 1.4的时区支持则倒逼数据库与部署流程升级。这一系列变化共同降低了Python 3落地的工程成本,使迁移从理论共识转为生产必需。典型应用场景包括老旧Django系统的渐进式升级、共享主机环境下的无权限部署,以及PyPI包元数据合 阅读详情

相关推荐

R语言数据导入全链路指南:从CSV到SPSS的底层原理与避坑实战

数据导入是数据分析流程的起点,也是R语言工程化落地的第一道关卡。其本质涉及I/O引擎性能、文本解析逻辑与内存容器选型三层技术栈。不同于Python的pandas统一接口,R生态中readr、data.table、haven、vroom等包各司其职,分别针对CSV编码容错、大文件并行读取、统计软件元数据兼容、列式内存映射等场景提供专业化能力。掌握locale编码控制、col_types显式类型声明、fread多线程调优及tibble与data.table容器差异,可显著提升数据加载稳定性与执行效率。本文聚焦R

454

python巡检脚本juniper_python实现巡检系统(solaris)示例

#!/usr/bin/python -u#-*- coding:utf-8 -*-'''程序:solaris_status.pyauthor: gyh9711功能:系统状态信息获取语言:sh + python注意:部分调用命令需要用到root权限测试情况:系统版本:solaris10 系统测试ok测试服务器型号:sun 6900 6800 v445 v440 M3000 M5000内容:'''im...

weixin_39894914的博客 434

Ubuntu 18.04 安全远程命令执行:为什么必须用 OpenSSH 而非 nsh

远程命令执行是Linux系统管理的基础能力,其核心在于加密通信、身份认证与操作审计三大安全支柱。OpenSSH作为经过25年生产验证的工业级协议,通过DH密钥交换、主机密钥校验、公钥认证、HMAC完整性保护及系统级日志等纵深防御机制,为Ubuntu 18.04提供了开箱即用的安全远程通道。而所谓‘nsh’既非官方支持组件,也不具备同等协议级安全保障,多为拼写误写、私有封装或废弃工具;盲目引入反而扩大攻击面。本文基于Ubuntu 18.04+ESM长期支持环境,详解如何利用原生OpenSSH实现端口加固、密钥

weixin_30411819的博客 500

Solaris 10下使用Python3

        通常在Solaris 10上仅仅能使用Python2.x。假设使用Python3的话,一种就是http://www.sunfreeware.com获取可用的二进制版本号。只是眼下这个站点已经不提供免费下载了。这样我们就须要自己编译了。首先是在Python站点下载源码,我下载了Pythob-3.4.3.tgz,能够用于sparc和x86版本号。然后是下载编译器。因为suncc...

weixin_33924770的博客 335

2025年C++与Rust混合编程协同调试实战指南

在系统级开发中,多语言混合编程已成为提升性能与安全性的关键技术。其核心原理在于通过外部函数接口(FFI)实现不同语言模块间的互操作,但这也引入了跨语言调试的复杂性。协同调试的技术价值在于,它能在一个连贯的视图中整合两套不同的内存模型、异常处理机制和调试信息,从而高效定位诸如内存悬垂、数据竞争等深层缺陷。对于涉及底层基础设施、高频交易或安全关键组件的应用场景,掌握协同调试是保障项目稳定性的基石。本文聚焦于C++与Rust的混合调试,通过配置VS Code、LLDB与CodeLLDB插件链,解决跨语言单步执行、

sunjhgq的专栏 436

llama.cpp实战指南:CPU轻量级LLM推理与GGUF模型部署

大语言模型推理不再依赖GPU和复杂生态——LLM推理本质上是将量化模型在有限算力下高效执行的过程,其核心原理涵盖模型量化压缩、CPU缓存友好计算、轻量级运行时封装与离线上下文管理。技术价值在于降低部署门槛、提升系统稳定性并支持边缘与嵌入式场景,典型应用包括离线客服系统、工业诊断助手、无障碍语音终端等对延迟敏感、无网环境或运维受限的工程现场。本文聚焦llama.cpp这一C++实现的轻量推理框架,深入解析GGUF格式设计、RMSNorm/SwiGLU/RoPE的底层优化,以及Zephyr-7B等主流模型在CP

weixin_33895516的博客 395

Solaris如何确定安装的Python是32位还是64位

首先进入到安装目录,运行如下命令:1. file python2.6,结果如下python2.6: ELF 64-bit MSB executable SPARCV9 Version 1, UltraSPARC1 Extensions Required, dynamically linked, not stripped2. ldd python2.6,结果如下libresolv.so.2 =>  

seeme007的专栏 2618

OpenClaw卸载指南:Linux系统级清理实战

OpenClaw并非标准软件包,而是一种运行时可扩展的技能调度框架,其部署灵活但缺乏包管理器支持,导致卸载需深度介入系统底层。其核心原理在于配置分散、服务注册不规范、环境耦合强,技术价值体现在对systemd生命周期、文件系统权限模型及进程上下文的综合掌控能力。典型应用场景包括渗透测试环境还原、Docker容器迁移前清理、自动化流程故障排查等。本文聚焦Linux中高级用户真实面临的‘非标工具卸载困境’,以grep文本扫描与vim精准研判为双主线,覆盖systemd服务、二进制路径、配置目录、Python环境

weixin_34150830的博客 378

Python 环境搭建

本章节我们将向大家介绍如何在本地搭建Python开发环境。 Python可应用于多平台包括 Linux 和 Mac OS X。 你可以通过终端窗口输入 "python" 命令来查看本地是否已经安装Python以及Python的安装版本。 Unix (Solaris, Linux, FreeBSD, AIX, HP/UX, SunOS, IRIX, 等等。) Win 9x/NT/2000 Macintosh (Intel, PPC, 68K) OS/2 DOS (多个DOS版本) PalmOS

zhanfei0717的博客 291

Python库 | solaris-0.3.0.tar.gz

资源分类:Python库 所属语言:Python 资源全名:solaris-0.3.0.tar.gz 资源来源:官方 安装方法:https://lanzao.blog.youkuaiyun.com/article/details/101784059

vrep和matlab,使用Matlab与V-REP联合仿真 - Play V-REP with Matlab

OS: Win10 x64Matlab: R2016bV-REP: V-REP PRO EDU v3.5.0 下载、安装与支持V-REP操作基础V-REP仿真基础Matlab环境准备一个简单的例子对V-REP有一定了解的读者可以直接跳到第三节Matlab环境准备。下载、安装与支持V-REP提供Windows、Linux和MacOS三个平台的应用程序支持,任意平台都提供教育版和专业版两个版本。教育版...

weixin_42660494的博客 3211

python 代码命令大全_用 Python 重写了 C 语言实现的 Solaris 命令,代码减少 90% 而性能提升 17 倍...

作者丨Darren Moffat译者丨夏夜策划丨田晓旭在 /usr/bin/listusers 命令中,我修复了一个内存分配的错误,这个错误在该命令转为 64 位时会引起一些问题。在修复这个错误之后,我决定研究一下这段古老的 C 代码是否能在转换为 Python 实现后得到一些改进。这段 C 代码大约有 800 行,但从 1988 年后就基本没有动过了,在编写这段代码的那个年代,用户数还...

weixin_39726873的博客 85

Cadence PCB SI仿真实战:如何手动添加VIA过孔模型提升板级链路精度

本文详细介绍了在Cadence PCB SI仿真中如何手动添加VIA过孔模型以提升DDR4/5设计的精度。通过参数化建模和三维全波建模技术,工程师可以有效解决高速设计中的信号完整性问题,显著降低仿真误差。文章还提供了实战案例和常见问题解决方案,帮助优化板级链路性能。

weixin_28683391的博客 409

Python函数式编程三大基石:itertools、functools与operator实战指南

函数式编程是提升Python代码可维护性、性能与可测试性的核心范式。其底层依赖于数据流处理、函数增强和运算符抽象三大技术支柱:itertools提供内存友好的惰性迭代器组合,functools支持函数复用与缓存优化,operator将内置操作转化为高阶函数接口。这些标准库模块共同构成无需第三方依赖的生产级函数式基础设施,广泛应用于ETL流水线、实时聚合、配置驱动服务及高并发中间件等场景。本文聚焦itertools的流式调度能力、functools的函数外科手术特性以及operator的语义化操作封装,通过真

ciya3282的博客 430

14、OpenClaw(龙虾助手)Skill 开发完整规范(2026最新版)

OpenClaw Skill 开发指南摘要: Skill 是 OpenClaw AI 助手的核心扩展机制,支持声明式(SKILL.md)和原生代码(JS/TS/Python)两种开发模式。声明式 Skill 通过 Markdown 定义触发条件和执行流程,适合简单业务;原生代码 Skill 提供完整编程能力,适合复杂场景。开发需遵循标准化项目结构,包含 SKILL.md(元数据)、manifest.json(权限声明)等文件,并严格处理错误和多系统适配。新版要求原生 Skill 必须声明文件、网络等权限,确

欢迎光临~知1而N的博客 1243

光伏微电网蓄电池储能控制系统设计及动态性能分析

本文构建了光伏微电网蓄电池储能控制系统的完整理论体系。在系统架构方面,提出了基于直流母线电压平衡的多时间尺度能量管理理论,建立了光伏发电单元的二阶物理模型和MPPT动态跟踪算法。针对蓄电池系统,设计了融合二阶RC等效电路与扩展卡尔曼滤波的SOC估计方法,误差控制在3%以内。双向DC-DC变换器采用状态空间平均建模方法,推导了小信号传递函数,为闭环控制提供理论基础。该体系实现了从瞬时功率平衡到长期能量调度的多层级协同控制,为微电网稳定运行提供了系统的解决方案。

AI的内部世界的博客 191

第一个三角形:Jeff Molofee(NeHe) 的OPENGL教程-第二课

<!--font { font-family: Arial; line-height: 180%; font-size: 12pt; margin-top: 2; margin-bottom: 2 }body { font-family: font }td { border-left-co

没吃过猪肉,光看见猪跑啦.................... 2673

把开源 Skills 集成到 LangGraph 项目

1. 定义智能体状态(必须包含 messages,其他字段按需扩展)messages: List[HumanMessage | AIMessage | ToolMessage] # 消息流(核心)skill_output: Optional[str] # 存储 Skill 执行结果next_node: str # 控制流程跳转# 2. 定义智能体决策节点(决定是否调用 Skill)"""智能体决策逻辑:根据用户输入判断是否调用开源 Skill"""# 获取最后一条用户消息。

lpfasd123的博客 902

Python基础知识学习2026.7.15

此外,Python 还可移植到 Java 及 .NET 虚拟机环境中运行。

html_zlz的博客 261

彻底解决Win11锁屏界面黑屏或者图片不变化

windows锁屏后黑屏

renkai721的专栏 1万+

手写中间件之——并行框架(1 并行框架的应用场景和需求)

我们为什么会需要一个带任务顺序编排的并行框架 1 复杂的微服务系统间调用 经常会有这样的调用场景:app(或web前端)调用后台的一个接口,该接口接到该请求后,需要调用其他多个微服务来获取数据,最终汇总一个最终结果返回给用户。 譬如用户请求“我的订单”,后台在收到请求后,就需要去调用用户详情rpc、商品详情rpc、库存rpc、优惠券rpc等等很多个服务。有些服务是可以并行去请求的,但有些服务...

tianyaleixiaowu的专栏 1万+

MySQL【简介】

数据库、数据库的分类、什么是Mysql、Mysql发展历史、Mysql版本介绍、Mysql优缺点、Mysql开发工具Navicat

尽欢的博客 411

WinCC实现定时存储数据至SQLServer

环境 Win10 WinCC V7.5 SQL Server 2016 运行结果 流程 WinCC变量 全局VB脚本 (我设置的是每2秒存一次,因此周期性触发器设置1秒)

skr? 3989

Mythos模型技术解析:三层解耦架构与对抗性自我蒸馏

大语言模型在安全分析与代码理解领域的演进,正从单阶段推理迈向多层协同的认知系统。Mythos代表了一种新型AI范式:通过神谕层(Oracle)、匠人层(Artificer)和织网层(Weaver)的严格解耦,实现漏洞分析、exploit构造与上下文记忆的职责分离;其核心训练方法——对抗性自我蒸馏,以教师模型初筛、反向验证器诘问、多轮逻辑加固为闭环,显著提升推理链完整性与可验证性。该技术路径不仅重塑了SWE-bench等代码基准的评估意义,更对软件供应链安全、零日漏洞响应机制及AI对齐工程提出全新挑战。本文深

weixin_33743248的博客 295

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

Ubuntu 18.04 安装 p7zip-full 全流程:源配置、验证与避坑指南

7Zip 是一款高性能开源压缩工具,基于 LZMA2 算法提供远超 ZIP/gzip 的压缩率和跨格式支持(7z/ZIP/RAR/tar.xz/ISO)。其原理在于字典编码与多线程熵编码协同优化,技术价值体现在高密度归档、AES-256 加密及低内存占用,广泛应用于 Linux 服务器日志压缩、Docker 镜像瘦身、嵌入式固件分发及跨平台软件包构建。在 Ubuntu 18.04 这类已结束标准支持的 LTS 版本中,因官方源迁移至 old-releases.ubuntu.com 且默认禁用 univers

weixin_30897233的博客 313

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

LLM生产化落地:智能服务单元的四层基础设施架构

大语言模型(LLM)从实验室走向真实业务,核心瓶颈已从算法性能转向基础设施可扩展性。本文围绕‘智能工业化’本质,解析LLM推理中计算密集型特征、KV Cache状态管理、GPU显存带宽瓶颈与动态资源调度等底层原理,阐明为何传统微服务架构在延迟、成本与稳定性上全面失灵。技术价值在于构建可度量、可演进、可计费的智能服务单元,支撑高并发、低P95延迟、细粒度SLA保障的生产场景。典型应用包括智能客服、法律合同分析、电商大促AI助手等需稳定交付的工业级AI服务,最终落点于Triton+自适应批处理+GPU感知编排+

cqwf95925的博客 429
上一篇: 用Python分析了猪肉的近况,竟然我还没实现猪肉自由!
下一篇: Python爬取了1.7 万条房产数据,告诉你深圳生存压力有多大!
PythonJavaPHP
博客等级 码龄7年 116粉丝 76原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值