腾讯云
开发者社区
文档
建议反馈
控制台
首页
学习
活动
专区
工具
TVP
最新优惠活动
文章/答案/技术大牛
搜索
搜索
关闭
发布
登录/注册
首页
学习
活动
专区
工具
TVP
最新优惠活动
返回腾讯云官网
原创分享
专栏作者
举报
363
文章
395920
阅读量
34
订阅数
订阅专栏
申请加入专栏
全部文章
node.js
编程算法
javascript
c++
http
linux
socket编程
unix
tcp/ip
数据结构
进程
api
函数
nginx
https
打包
缓存
github
存储
网络安全
内存
udp
v8
单片机
网站
操作系统
事件
线程
原理
task
定时器
队列
内存管理
系统
源码分析
其他
php
json
android
云数据库 Redis
ide
dns
handle
对象
管理
内核
数据
java
c 语言
access
文件存储
express
面向对象编程
npm
allocation
exit
init
io
list
schedule
sleep
socket
链表
连接
异步
源码
lua
bash
react
html
ecmascript
git
消息队列 CMQ 版
开源
安全
kafka
sdk
rust
bind
block
gc
profile
sample
struct
sys
timeout
timer
遍历
布局
服务器
监控
性能
异常
负载均衡
bootstrap
xml
arm
云数据库 SQL Server
sql
apache
云函数
SSL 证书
腾讯云测试服务
爬虫
spring boot
hashmap
rpc
uml
数据分析
数据处理
物联网
腾讯云开发者社区
utf8
小程序·云开发
add
alarm
area
async
attr
bitmap
boolean
client
clone
combine
counter
cpu
data
debug
default
double
epoll
error
event
fill
filter
fork
free
func
glibc
handler
heap
int
intel
ip
join
load
location
map
mmap
mutex
nan
null
parent
pipe
post
process
queue
release
repeat
scope
space
state
stream
swap
tcp
thread
token
trace
trie
x86
变量
测试
插件
多线程
集合
垃圾回收
生命周期
数组
同步
通信
异常处理
优化
指针
状态机
搜索文章
搜索
搜索
关闭
如何写一个 JS 运行时
api
javascript
linux
github
https
前言:随着 Node.js 的出现和不断发展,其他新的 JS 运行时也穷出不断,Deno、Just、Bun等等。本文简单介绍一下如何写一个 JS 运行时,相比操作系统、编译器来说,写一个 JS 运行时理论上并不是一个难的事情,但是写一个优秀且功能齐全的运行时并不是一个容易的事情。
theanarkh
2022-12-06
1.7K
0
Linux ptrace 的实现
linux
前言:ptrace 是 Linux 内核提供的非常强大的系统调用,通过 ptrace 可以实现进程的单步调试和收集系统调用情况。比如 strace 和 gdb 都是基于 ptrace 实现的,strace 可以显示进程调用了哪些系统调用,gdb 可以实现对进程的调试。本文介绍这些工具的底层 ptrace 是如何实现的。这里选用了 1.2.13 的早期版本,原理是类似的,新版内核代码过多,没必要陷入过多细节中。
theanarkh
2021-12-09
1.4K
0
探索 ebpf 在 Node.js 中的应用
node.js
linux
前言:ebpf 是现代 Linux 内核提供的非常复杂和强大的技术,它使得 Linux 内核变得可编程,不再是完全的黑盒子。随着 ebpf 的发展和成熟,其应用也越来越广泛,本文介绍如何使用 ebpf 来追踪 Node.js 底层的代码。
theanarkh
2021-12-02
1.6K
0
Linux 内核静态追踪技术的实现
linux
event
func
trace
内核
前言:最近在探索 Node.js 调试和诊断方向的内容,因为 Node.js 提供的能力有时候可能无法解决问题,比如堆内存没有变化,但是 rss 一直上涨。所以需要深入一点去了解更多的排查问题方式。而这些方向往往都涉及到底层的东西,所以就自然需要去了解内核提供的一些技术,内核提供的能力,经过多年的发展,可谓是百花齐放,而且非常复杂。本文简单分享一下内核的静态追踪技术的实现。追踪,其实就是收集代码在执行时的一些信息,以便协助排查问题。
theanarkh
2021-11-19
1.6K
0
No.js---基于V8和io_uring的JS运行时
javascript
linux
node.js
http
前言:阅读Node.js的源码已经有一段时间了,最近也看了一下新的JS运行时Just的一些实现,就产生了自己写一个JS运行时的想法,虽然几个月前就基于V8写了一个简单的JS运行时,但功能比较简单,这次废弃了之前的代码,重新写了一遍,写这个JS运行时的目的最主要是为了学习,事实也证明,写一个JS运行时的确可以学到很多东西。本文介绍运行时No.js的一些设计和实现,取名No.js一来是受Node.js的影响,二来是为了说明不仅仅是JS,也就是利用V8拓展了JS的功能,同时,前端开发者要学习的知识也不仅仅是JS了。
theanarkh
2021-09-16
812
0
JS运行时Just源码解读
javascript
c++
linux
node.js
开源
像Node.js一样,Just也分为内置JS和C++模块,同样是在运行时初始化时会处理相关的逻辑。
theanarkh
2021-09-16
916
0
在Node.js中使用SO_RESUEPORT
socket编程
c++
node.js
linux
github
前言:今天下载了Node.js最新版代码,并为Node.js的TCP模块增加了SO_RESUEPORT的能力,本文介绍一下具体的实现,关于SO_RESUEPORT的知识可以参考之前的文章或者网上文章。
theanarkh
2021-07-30
580
0
编写自己的js运行时第二篇
linux
unix
javascript
socket编程
node.js
前言:第一版基于V8实现了一个朴素版的服务器,第二版支持了多进程架构,并且支持了SO_REUSEPORT。本文介绍一下第二版的一些实现,设计上还是比较随意的,目前主要关注功能。
theanarkh
2021-07-30
651
0
io_uring和Node.js
linux
前言:io_uring是大神Jens Axboe开发的异步IO框架,在Linux内核5.1引入。本文介绍什么是异步框架和io_uring的一些基础内容,最后介绍Node.js(Libuv)中,之前有人提但至今还没有合并的一个关于io_uring的pr。
theanarkh
2021-07-08
832
0
从内核看epoll的实现(基于5.9.9)
linux
api
前言:epoll是现代服务器的基石,也是高效处理大量请求的利器,从设计上来看,epoll的设计思想也是非常优秀的,本文介绍epoll的实现,从中我们不仅看到epoll的实现原理和机制,同时也能领略到其中优秀的设计思想。
theanarkh
2021-07-08
545
0
从内核看eventfd的实现(基于5.9.9)
linux
前言:eventfd是一种进程/线程通信的机制,他类似信号,不过eventfd只是一种通知机制,无法承载数据(eventfd承载的数据是8个字节),他的好处是简单并且只消耗一个fd。
theanarkh
2021-07-08
686
0
阻塞和非阻塞的实现
linux
socket编程
我们可能都已经听过阻塞非阻塞的概念,本文以tcp中的connect系统调用为例子(基于1.12.13内核,新版的原理类似,但是过程就很复杂了,有时间再分析),分析阻塞和非阻塞是什么并且看他是如何实现的。话不多说,直接开始。
theanarkh
2021-07-08
2.2K
0
【Nodejs源码剖析】基于inotify的文件监听机制
node.js
linux
Node.js中实现了基于轮询的文件监听机制,基于轮询的监听其实效率是很低的,因为需要我们不断去轮询文件的元数据,如果文件大部分时间里都没有变化,那就会白白浪费CPU。如果文件改变了会主动通知我们那就好了,这就是基于inotify机制的文件监听。Node.js提供的接口是watch。watch的实现和watchFile的比较类似。
theanarkh
2021-05-28
1.1K
0
Node.js的底层原理
编程算法
node.js
javascript
socket编程
linux
前言:本文根据最近做的一次分享整理而成,希望能帮忙大家深入理解Node.js的一些原理和实现。
theanarkh
2021-05-28
1.9K
0
协程库libtask源码分析之架构篇
linux
c 语言
前言:假设读者已经了解了协程的概念、实现协程的底层技术支持。本文会介绍基于底层基础,如何实现协程以及协程的应用。
theanarkh
2021-05-28
543
0
服务器处理连接的架构演变
socket编程
编程算法
linux
tcp/ip
服务器是现代软件中非常重要的一个组成。服务器,顾名思义,是提供服务的组件,那么既然提供服务,那就要为众人所知,不然大家怎么能找到服务呢?就像我们想去吃麦当劳一样,那我们首先得知道他在哪里。所以,服务器很重要的一个属性就是需要发布服务信息,服务信息包括提供的服务和服务地址。这样大家才能知道需要什么服务的时候,去哪里找。对应到计算机中,服务地址就是ip+端口,但是ip和端口不容易记,不利于使用,所以又设计出DNS协议,这样我们就可以使用域名来访问一个服务,DNS服务会根据域名解析出ip。解决了寻找服务的问题后,接下来的问题就是服务器如何高效地处理连接。本文介绍服务器处理连接的架构演进。
theanarkh
2021-05-28
890
0
nodejs是如何处理tcp连接的
c++
linux
node.js
前几天和一个小伙伴交流了一下nodejs中epoll和处理请求的一些知识,今天简单来聊一下nodejs处理请求的逻辑。我们从listen函数开始。
theanarkh
2021-03-15
862
0
【nodejs每日一讲】nodejs的进程间通信
unix
node.js
linux
http
之前提了一个问题:nodejs中如何实现兄弟进程间的通信,大家分别列举了redis、ZooKeeper,MessageChannel,还有linux操作系统提供的共享内存等一系列的进程间通信方式。所以今天来分享一下到底如何实现nodejs的进程间通信。这里的讨论只限于linux系统,本机的进程。情况分为两种:父子进程,兄弟进程。
theanarkh
2021-01-24
993
0
通过linux源码分析nodejs的keep-alive
linux
node.js
socket编程
之前已经分析过了keep-alive,最近在使用nodejs的keep-alive的时候发现了遗漏了一个内容。本文进行一个补充说明。我们先看一下nodejs中keep-alive的使用。
theanarkh
2020-06-28
1K
0
Libuv简介
linux
dns
http
Libuv是一个跨平台的的基于事件驱动的异步io库。但是他提供的功能不仅仅是io,包括进程、线程、信号、定时器、进程间通信等。下面是来自官网对Libuv架构的介绍图。
theanarkh
2020-05-20
1.3K
0
点击加载更多
社区活动
腾讯技术创作狂欢月
“码”上创作 21 天,分 10000 元奖品池!
立即发文
Python精品学习库
代码在线跑,知识轻松学
立即查看
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
立即体验
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
立即查看
领券
问题归档
专栏文章
快讯文章归档
关键词归档
开发者手册归档
开发者手册 Section 归档