language
-
just-js 高性能 javascript 运行时
一个非常小的 v8 javascript 运行时,仅适用于 Linux。 在Techempower第21回测试中,获得第一名!!! github地址: https://github.com/just-js/just 构建和运...
1 3471 3 javascript -
如何用JavaScript实现动态控制网页背景颜色的渐变效果
在网页设计中,背景颜色的渐变效果能极大地提升视觉吸引力。今天,我们将通过JavaScript来动态控制网页的背景颜色渐变效果,使得你的网页更加生动有趣。 首先,我们需要创建一个基础的HTML结构和CSS样式。假设你已经有了一个简单的H...
-
Python爬虫过五关斩六将:绕过反爬机制的实用技巧
想用Python写个爬虫,结果一不小心就被网站的反爬机制给拦住了?别灰心!反爬虫和反反爬虫就像猫捉老鼠,是个永恒的游戏。今天,我就来分享一些实用的技巧,助你轻松绕过常见的反爬机制,让你的爬虫畅通无阻。 1. 伪装身份:User-Age...
-
CSS Houdini动画工作单元?让Web动画性能飞跃的秘诀
Houdini?你可能听说过这个名字,但它究竟能给你的Web动画带来什么翻天覆地的变化?今天,咱们就来聊聊CSS Houdini中的Animation Worklet API,看看它如何助力你打造高性能、自定义的动画效果,尤其是在实现复杂...
-
Faiss, Annoy, HNSW 谁更强?ANNS 库性能大比拼,代码示例与实战解析
嘿,哥们儿!想在海量数据里快速找到你想要的东西?别担心,今天咱们就来聊聊那些能帮你“大海捞针”的利器——近似最近邻搜索 (ANNS) 库。特别是,我们会重点比较当下最火的三款:Faiss、Annoy 和 HNSW。准备好了吗?咱们这就开始...
-
SQL Server 题目:为用户投票,并统计投票结果
为用户投票,并统计投票结果 用户表: uid 用户id city 城市 name 姓名 type 类型 0:投票人 1:被投票人 投票记录表: id time 投票时间 uid 投票人id t uid 被投票人...
-
js 数字金额转中文人民币字符串的方法
通过 JavaScript 把数字的金额比如 12345 转成 中文的金额 一万二千三百四十五元 ,要实现起来非常简单,其他的语言也是相同的道理,思路是一样的。 思路 获取长度,得到对应单位 截取第一个字符,得到中...
-
PGroonga:让PostgreSQL适用于所有语言的快速全文搜索引擎扩展
PGroonga 内置了一个强大搜索引擎 Groonga,也就是只需要安装一个PGroonga扩展,就可以完全让PostgreSQL支持多语言混合而且快速的搜索功能。 PostgreSQL支持针对仅使用字母和数字的语言进行全文搜索...
-
PHP换行 PHP换行符的使用技巧
PHP换行符 r 是回车符 n 是换行符 这两个符号在很多编程语言里面都可以用来代表换行,在PHP中也是一样的。 $string = "第一行 r n 第二行 n 第三行"; // 需要...
-
利用 io_uring 固化缓冲区与 C++23 内存池攻克大文件零拷贝吞吐极限
在大文件网络传输或高性能存储系统中,传统的 read / write 系统调用往往伴随着高昂的 CPU 拷贝开销与内核态/用户态切换成本。即便使用标准 io_uring 异步接口,如果在每次 I/O 提交时都动态建立用户空间页...
-
突破异步C++极限:如何基于 P2300 (std::execution) 构建高性能 io_uring 调度器?
在 C++23 中,随着 std::execution (即 P2300 提案)的逐步落地,C++ 异步编程正在迎来底层的统一变革。借助 Sender/Receiver(发送器/接收器) 模型,我们可以用高度结构化的方式组织异步任务...
-
C++20 协程生命周期踩坑指南:如何优雅地解决异步 I/O 中的悬挂指针与内存崩溃?
C++20 引入的协程(Coroutines)极大地简化了异步代码的编写方式,让我们可以用同步的直觉写出异步的高性能代码。然而,硬币的另一面是 极其严苛的内存生命周期管理 。 在传统的同步代码中,调用栈(Call Stack)天然地保...
-
C++20 协程与无锁工作窃取:自研轻量级 Actor 模型的底层架构与实现
在现代多核架构中,传统的基于锁和多线程的并发模型常常面临着上下文切换开销大、死锁风险、以及线程阻碍等性能瓶颈。Actor 模型通过引入“无共享内存、通过消息传递进行通信”的隔离机制,提供了一种天然安全的并发范式。 借助 C++20 ...
-
C++ 高性能无锁队列设计:如何极致优化 Reactor 与 Worker 线程间的数据交付
在构建高性能 C++ 网络服务器(如基于 Epoll/Kqueue 的 Reactor 模型)时,Reactor 线程(负责 I/O 多路复用与事件分发)与 Worker 线程池(负责业务逻辑计算)之间的数据交付效率,直接决定了整站的吞吐...
-
现代 C++ 极简实战:如何用 epoll 实现万级并发的 HTTP 服务器?
要让单台服务器撑住万级并发(C10K 问题),传统的“一连接一线程(Thread-per-connection)”模型会因为线程上下文切换和内存开销(每个线程默认栈空间 8MB)直接崩溃。 现代 Linux 服务端的标准解法是: 非阻...
-
彻底搞懂 I/O 多路复用:从 select 到 epoll 的演进与核心底层设计
在现代互联网高并发场景(如 C10K、C10M 问题)中, I/O 多路复用 是支撑高吞吐量服务的基石。无论是 Redis、Nginx 还是 Netty,其底层都离不开这一技术的支持。 从早期的 select 、 poll 到如今...
-
深度剖析:epoll ET 模式下如果不设非阻塞,内核里会发生什么?
在 Linux 高性能网络编程中,**“epoll 的 ET(边缘触发)模式必须配合非阻塞(Non-blocking)Socket 使用”**几乎是一条铁律。 但你是否深入思考过: 如果不这么做,到底会发生什么?底层的内核运转逻辑又是...
-
大白话彻底搞懂 epoll 为什么比 select/poll 强:从内核数据结构到高并发本质
在写高并发网络程序时,大家都知道要用 epoll ,也知道 select 和 poll 在连接数多了之后性能会急剧下降。 但如果面试官深挖一步: “到底是什么底层结构和运行机制的差异,导致了这种性能上的天壤之别?” 如...
-
彻底搞懂 Nginx 的 accept_mutex:它是如何解决早期 Linux 惊群效应的?
在探讨 Nginx 的 accept_mutex 机制之前,我们需要先明确一个背景: “惊群效应”(Thundering Herd)在现代 Linux 内核中,对于单纯的 accept() 系统调用其实早已在内核层解决。 ...
-
Redis 单线程与 Reactor 模型的精密协同机制
在高性能网络编程领域,Redis 常被作为“单线程高性能”的典范。要理解为什么 Redis 的单线程设计在处理高并发网络 IO 时,不仅没有成为瓶颈,反而避免了多线程的延迟副作用,我们需要从 CPU 架构、操作系统内核以及 Redis 自...