logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

【C#避坑实战系列文章12】一文读懂 C# 并行与并发:TPL 库核心概念 + 200 行源码,新手也能懂

30 秒选对工具(新手直接对号入座)实际场景选哪个 TPL 组件?代码关键片段多 API 请求、文件读写(I/O 密集)百万数据循环计算(计算密集)Parallel.For(0, count, i => { 计算逻辑;});数据筛选 + 转换(查询场景)PLINQ新手下一步学习方向如果能独立跑通上面 3 个案例,说明你已经掌握了 TPL 库的 “入门技能”,接下来可以针对性学习:线程安全:深入lo

文章图片
#c##数据库
【C#避坑实战系列文章13】C# 并行处理入门:从 Parallel.For 到 PLINQ,3 个实战案例搞定数据并行(保姆级教程)

摘要:本文介绍了如何利用.NET内置的并行处理工具提升C#程序性能。在如今多核CPU普及的背景下,传统的单线程处理方式已无法满足大数据处理需求。文章通过对比"并行"与"并发"的概念差异,重点讲解了数据并行的实现方法。包含三个实战案例:1)使用Parallel.For加速百万级数据计算,4核CPU下耗时仅为普通循环的1/3;2)通过PLINQ实现并行查询,仅需

文章图片
#c##服务器#linux
【C#避坑实战系列文章10】C# 导出 Excel 时并行处理数据:10 万条数据分批次并行转换,导出时间缩短 60%

本文针对管理系统开发中大数据量 Excel 导出卡顿问题,提出基于 C# TPL 库的并行优化方案。传统串行导出 10 万条数据存在单线程 CPU 利用率低、内存暴涨(300MB+)和写入效率低三大痛点。解决方案采用"分批次并行转换+串行写入"模式,结合 EPPlus 组件实现:1)数据库分页读取控制内存;2)利用 TPL 多线程并行数据转换;3)线程安全地串行写入 Excel

文章图片
#c##java
【C#避坑实战系列文章07】C#并行处理CPU/内存监控:用PerformanceCounter实时监控,避免资源过载(附工具类)

C#并行处理资源监控指南 本文介绍了如何利用.NET内置的PerformanceCounter类监控并行处理中的资源使用情况,解决CPU过载、内存泄漏等常见问题。 核心内容 并行处理痛点: 未监控资源导致CPU长期满载或内存泄漏 资源瓶颈定位困难 PerformanceCounter基础: 通过计数器类别、名称和实例名监控系统资源 重点关注总CPU使用率、可用内存和进程内存占用 实战工具类: 提供

文章图片
#c##单片机#开发语言
【C#避坑实战系列文章06】C# Parallel.For 的 3 个常见错误:索引越界、共享数据污染、过度并行化(避坑技巧)

摘要 C# 并行处理中 Parallel.For 是高效工具,但新手常犯三个错误: 索引越界:误用硬编码结束索引导致数组越界,应动态获取长度(如 dataArray.Length)并避免循环内修改集合大小。 共享数据污染:多线程同时修改共享变量(如累加和)引发竞态条件,可通过 Interlocked 原子操作或 lock 同步解决。 过度并行化:小任务或高开销并行反而降低性能,需根据任务粒度调整并

文章图片
#c##算法
【C#避坑实战系列文章05】C# 并行任务粒度控制:任务拆分太细 / 太粗都不行?这 2 个判断标准帮你搞定

摘要:C#并行开发中的任务粒度控制 在C#并行开发中,任务粒度控制是提升性能的关键。本文通过两个典型错误案例,揭示了任务拆分过细和过粗的危害:过细拆分(如100万条数据拆分成100万个任务)会导致调度开销压垮并行收益,耗时反而比串行处理更长;过粗拆分(如100万条数据仅拆成1个任务)则会导致多核CPU闲置,无法发挥硬件优势。文章提出了两个核心判断标准:1)任务耗时应至少是调度开销的10倍;2)任务

文章图片
#c##服务器
【C++避坑实战系列文章02】C++23 堆栈跟踪功能实战:从内存泄漏梦魇到一键定位的调试革命

C++23堆栈跟踪:内存泄漏调试革命 内存泄漏是C++开发中的顽疾,传统调试方案各有局限:Valgrind带来10倍性能损耗,ASan需要重新编译,Boost库存在兼容性问题。C++23标准引入的堆栈跟踪功能提供了标准化解决方案。 调试方案对比 Valgrind:性能开销10-50倍,仅限测试环境 ASan:2-3倍开销,需重新编译 Boost:兼容性差,维护成本高 C++23堆栈跟踪:仅5%性能

文章图片
#c++23#java#前端
【C++避坑实战系列文章05】string::c_str()写入导致段错误?const指针的只读特性与正确用法

摘要 C++中string::c_str()方法的误用常导致程序崩溃,核心问题是开发者未充分理解其只读特性和内存管理机制。本文通过三个典型崩溃案例(强制转换写入、破坏内部结构、野指针访问),剖析c_str()返回的const指针本质及生命周期特性,指出其作为"只读内部缓冲区快照"的设计初衷。为解决修改需求,推荐三种方案:仅读取时直接使用;需要修改时调用string成员函数;必须

文章图片
#c语言#开发语言
【C++避坑实战系列文章03】为什么delete后还会内存泄漏?C++智能指针循环引用的3种检测与修复方案

C++程序使用delete或shared_ptr后仍出现内存泄漏,最常见的原因是智能指针的循环引用。本文通过两类泄漏场景分析问题:1)基础delete的显性漏删,如分支逻辑遗漏或异常跳过;2)更隐蔽的shared_ptr循环引用,即对象互相持有对方的智能指针导致引用计数无法归零。文章提供三种检测方法:Valgrind工具分析、VS内存诊断工具和自定义内存跟踪器实现,并给出循环引用的具体代码示例和解

文章图片
#c++#算法#开发语言
未来5年,程序员需要具备「AI思维」:C#开发者如何结合AI做技术选型?从需求分析到落地的实战案例

AI技术正在重塑C#开发者的技术选型方式。本文以电商库存管理系统为例,展示了AI在整个技术决策流程中的应用:需求分析阶段,通过ChatGPT将模糊的业务需求转化为可量化的技术指标,如库存变更峰值30万次/日、响应时间<100ms等具体指标。验证阶段,使用ML.NET生成模拟数据预测流量峰值(代码示例完整展示如何预测大促期间每小时库存操作量),帮助开发者准确评估系统承载需求。决策阶段,通过AI辅助建

文章图片
#人工智能#c##数据挖掘
    共 32 条
  • 1
  • 2
  • 3
  • 4
  • 请选择