首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Node.js中使用SO_RESUEPORT

前言:今天下载了Node.js最新版代码,并为Node.js的TCP模块增加了SO_RESUEPORT的能力,本文介绍一下具体的实现,关于SO_RESUEPORT的知识可以参考之前的文章或者网上文章。...考虑到操作系统兼容性的问题,目前只支持Linux系统,旧版Mac OS也支持相关属性但是效果不符合预期,新版Mac OS倒是支持,考虑到Node.js在几乎都是部署到Linux,所以可以先关注Linux...#if defined(SO_REUSEPORT) && defined(__linux__) on = 1; if ((flags & UV_TCP_REUSEPORT) && setsockopt...首先导出一个新的常量 #if defined(SO_REUSEPORT) && defined(__linux__) NODE_DEFINE_CONSTANT(constants, UV_TCP_REUSEPORT...也就是说如果Node.js真的支持了SO_RESUEPORT,在某些平台不支持SO_RESUEPORT的情况下,我们如何能保证我们的代码能在各个平台上跑。

58230
您找到你想要的搜索结果了吗?
是的
没有找到

linux 什么是SO文件

下面的内容大多都是连接中的,穿插我自己的笔记 牵扯到ELF格式,gcc编译选项待补,简单实用的说明一下,对Linux下的so文件有个实际性的认识。 1.so文件是什么?...———————————————————————- 链接:得到输出文件libs.so gcc -g -shared -Wl,-soname,libs.so -o libs.so libs.o -lc...这个特性使得在Linux下,升级使得共享库的程序和定位错误变得十分容易。   ...在Linux中,应用程序通过使用soname,来指定所希望库的版本,库作者可以通过保留或改变soname来声明,哪些版本是兼容的,这使得程序员摆脱了共享库版本冲突问题的困扰。...下面的还没细看,汗 4.库的初始化,解析: windows下的动态库加载,卸载都会有初始化函数以及卸载函数来完成库的初始化以及资源回收,linux当然也可以实现。

5.5K20

提升Node.js性能之SO_REUSEPORT的探讨

前言:多个进程不能同时绑定同一个IP和端口,这是早期Linux内核的一个限制,这个限制给服务器带来了很多不便之处,因为服务器的架构通常不是单进程的,尤其在多核的时代,但是3.9的内核带来了新的特征SO_REUSEPORT...SO_REUSEPORT的意义是支持同用户下的多个进程同时监听一个IP和端口,本文介绍在Node.js中支持SO_REUSEPORT,以提升Node.js的性能。...目前,Node.js的TCP模块还没有支持SO_REUSEPORT。...支持SO_REUSEPORT不仅(理论上)可以提高Node.js作为服务器的性能,同时也简化了代码的逻辑。...直接使用child_process模块,fork多个子进程,每个子进程调用listen函数就行(如果Node.js真的支持SO_REUSEPORT的话,后续Cluster只是作为降级/兼容方案,Node.js

91510

linuxso注入与热更新原理

简介 之前写了个hookso的工具,用来操作linux进程的动态链接库行为,本文从so注入与热更新入手,简单讲解一下其中的原理,配合源码阅读效果更佳。...这里要介绍一下linux的ptrace函数。...函数查找 我们知道,linux的可执行文件是elf文件格式,动态链接库其实也是elf格式。关于elf,有很多资料,这里简单讲一下elf结构。...(实际上linux各种运行时库的版本也很难受) 为什么不做成机器码直接jmp就好了? 机器码里直接jmp,但是事先不知道目标地址,所以只能填空,这样又不好与正常代码区分。...通过查阅资料可知,linux amd64调用函数,用到的寄存器及含义如下: rdi:参数1 rsi:参数2 rdx:参数3 rcx:参数4 r8:参数5 r9:参数6 rax:函数地址 rbp:栈底地址

10.4K50

linux如何安装node_node 环境变量

前言: linux中安装node环境 步骤: 第一步:官网下载node安装包,点我进入 第二步:解压到 个人的根目录下,也就是 /home/haoxing(这是你自己的名字)/nodejs...vim /etc/profile 3,输入你的密码 4,shift + i 打开编辑模式,加上以下代码,注意 /home/haoxing/nodejs根据你本地的路径改一下 export NODE_HOME...=/home/haoxing/nodejs export PATH=$NODE_HOME/BIN:$PATH 5,esc 退出编辑模式 6,shift + : 保存编辑内容 7, 重启电脑,(看网上说有刷新命令就可以...,但是我使用是刷新命令不生效,重启可以) 8,终端输入命令 检查是否成功 node - v cmd -v 版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。

4.6K30
领券