为什么说 IO 操作异步才有意义,CPU 密集操作异步没有意义 背景与问题 在后端开发中,我们经常讨论异步编程模型,尤其是在 Node.js、Netty 等技术栈中。一个普遍的共识是:异步对于 IO 操作 效果显著,而对于 CPU 密集型操作 却意义不大,甚至可能起反作用。这背后的原因是什么? 本文 ...
Claude Code 完全指南:使用方式、技巧与最佳实践 最近在深度使用 Claude Code,发现真的很香!即整理了一份全面的指南,从零开始逐步了解 Claude Code 的核心功能、高级特性和最佳实践。这篇博客实际上更像是一本工具书,让我自己在使用时也能随时参考其内容,更好的使用这个强大的 ...
1. 概述 1.1 背景 在考试系统中,当大量学生同时开始考试时,系统需要为每个学生创建考试记录(ExamRecord)和答题记录(ExamAnswerRecord)。传统的"按需创建"模式在高并发场景下存在以下问题: 性能瓶颈:每次开始考试都需要执行数据库写入操作,响应时间在 200-500ms ...
此分类用于记录吴恩达深度学习课程的学习笔记。 课程相关信息链接如下: 原课程视频链接:[双语字幕]吴恩达深度学习deeplearning.ai github课程资料,含课件与笔记:吴恩达深度学习教学资料 课程配套练习(中英)与答案:吴恩达深度学习课后习题与答案 本篇为第五课的第一周内容,1.2到1. ...
在日常工作中,你是否遇到过这种情况:你辛辛苦苦跑完数据,画了一张图表发给老板或客户,结果对方盯着看了半天,问了一句:“所以,你想表达什么?” 这就像讲笑话没人笑一样尴尬。图表的本质不是 “画图”,而是 “沟通”。 今天,我将分享 5 个提升可视化效果的原则,并用 Python 的 matplotli ...
问题现象 有的运维工具使用了java的ssh客户端,这些客户端和服务端间有时会出现加密算法协商失败和主机密钥类型协商失败的问题,该问题是由于新客户端/服务端禁用了相关的不安全算法和密钥类型,本文简要记录下该问题的解决方法以备不时之需。 错误常见提示如下: #加密算法协商失败 Unable to ne ...
大道至简:如何用最轻量的代码实现跨团队的微服务契约? 1. 二十年的架构长征:从加法到减法 回首我的职业生涯,有三个时间坐标让我印象深刻: 2006 年: 身边同事开始谈论 DDD(领域驱动设计)和马丁·福勒的《企业应用架构模式》。那是求知的年代,我们试图通过增加模式的复杂度来驯服代码的混乱。 20 ...
微信自带的群发助手不支持为每位收件人自定义消息内容,导致群发过程单调且缺乏个性化。因此,我希望通过编写程序来实现自动发送消息,并允许提前准备文本内容,方便后续直接调用。目前项目已基本完成,但由于担心可能引发微信账号风险,尚未投入实际使用。欢迎有兴趣的朋友在此基础上进一步开发和完善。 前期调研 调研的 ...
今天来梳理一下 Flink 双流操作相关的源码。 写在前面 通过Flink学习笔记:多流 Join一文的介绍,我们知道 Flink 有三种数据关联的方式,分别是 Window Join、Interval Join 和 CoGroup。下面我们分别看下这三种关联方式的源码实现。 Window Join ...
AUC 的两种等价定义:从排序概率到 ROC 曲线的统一理解 在推荐系统与广告排序中,AUC 是最常用、也最容易被误解的离线评估指标之一。很多人同时接触过两种说法: 一种是“ROC 曲线下面积”,另一种是“正样本排在负样本前面的概率”。这并不是两种不同的指标,而是同一个指标的两种完全等价的定义。 一 ...
前言 最近我又继续在开发 DjangoStarter 的新版本了。 之前为了实现 docker 部署,我把 Nginx 打包进了 DjangoStarter 的 compose 配置里了,不过这带来了配置的复杂度,特别是还要搭配框架实现 URL prefix 之类的功能。 从 v3.2.x 版本开始 ...
title: Zsh 配置笔记 date: 2025-12-04 tags: Shell categories: 命令行工具 [!NOTE] 笔记说明 这篇笔记主要记录了我在使用 Zsh 这款 Shell 的过程中所记录的一些心得与体会。它将会被存储在我个人的 计算机专业笔记库 中,以便日后查阅。 ...
此为作者摸索出的较为简洁的最佳实践,如有更好方法,可交流联系首先下载GraalVM25, 两种较为优雅的方式1. 官网下载地址2. 利用Idea便捷下载流程是从idea左上角打开项目结构面板,点击左栏项目设置中的项目,选择JDK,点击下载JDK,选择一款GraalVM下载即可个人追求简单优雅,不喜欢 ...
1.简介 前边的几篇文章,宏哥依次介绍了环境的搭建、启动应用程序、操作应用程序窗口以及等待的各种方法和实践。今天跟随宏哥一起来看下应用程序窗口的控件怎么操作呢???其实这个知识点前边已经有所涉及,只不过是一带而过,没有展开详细介绍。今天就来讲解和分享一下。PC端的应用程序的操作都是基于控件操作,如果 ...
cuBLAS 是NIVIDIA提供的GPU加速线性代数库,基于CUDA实现BLAS(基本线性代数子程序),广泛应用于科学计算、机器学习、工程仿真等领域。本笔记调研cuBLAS库的基本情况,将详细介绍产品的功能、算子列表及API列表,以及cublas实现矩阵乘法的案例。 ...
阿里云函数计算 AgentRun 全新发布后,我们整理了“探秘 AgentRun”系列文章,本系列将梳理企业落地Agent 常见难题,给出具体解法,助力 Agentic AI 快速走进生产级环境。欢迎加入“函数计算 AgentRun 客户群”与我们交流,钉钉群号:134570017218。 在《通过 ...
前言 在异步方法中调用同步方法,会直接阻塞整个事件循环,导致应用在执行同步方法期间无法处理其他任何并发请求,从而拖垮整个服务的性能。 为了解决这个问题,核心思路是将同步方法交给外部线程池去执行。 方法1, 使用 to_thread Python 3.9 后可以使用 asyncio.to_thread ...
前言 数字图像处理作为计算机视觉和多媒体技术的基础内容,其核心不仅在于理解算法原理,更在于动手实现与验证。为了深入掌握本项目选择从底层像素级别出发,使用C#语言手动实现各类经典图像处理算法,避免依赖现成的高级图像库。 这种"从零开始"的方式虽然开发成本较高,却能真正厘清每个操作背后的数学逻辑与工程细 ...
在 RabbitMQ 中,无法路由的消息(即交换机无法将消息路由到任何队列)的处理方式取决于消息发布时的参数配置,主要有以下几种情况: 1. 普通情况(默认行为) 如果消息发布时没有设置特殊参数: // 默认情况:无法路由的消息直接被丢弃 channel.basicPublish( "my-exch ...
作为软件工程师,我们都曾有过这样的经历:面对一个庞大、陈旧且几乎没有任何文档的遗留代码库。它就像一座没有地图的迷宫,每一次修改都可能触发意想不到的连锁反应。在这个关键时刻,逆向工程(Reverse Engineering)——即从现有代码中提取设计和需求的过程——就成了我们唯一的指引。 H. A. ...