首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

Rust FFI 编程 - nix crate

在进行 Unix 系统编程时,关键要熟悉 POSIX 规范 中定义的接口函数,以及 Unix/Linux 的 man 手册,以下是一些示例: 进程管理(例如,fork,kill) 文件处理(例如,read...,write) 网络编程(例如,socket,listen) 与硬件交互(例如,ioctl,mmap) Linux容器(例如,clone,mount) nix 库介绍 nix 库 旨在提供对各种类 Unix...平台(Linux,Darwin等)API 的友好绑定(bindings),其代码地址在:https://github.com/nix-rust/nix。...ifaddrs,使用 Linux 或 BSD 中的函数getifaddrs获取网络接口及地址列表。 kmod,包含加载和卸载内核模块的功能。...sched,提供 Linux 系统的调度接口。 sys,这个模块包括各种系统相关的功能:POSIX 异步 I/O,文件系统事件的监控 API,Socket接口函数等。

1.5K20

InetAddress.getLocalHost() 执行很慢?

这里有几个地方需要注意: 即使 hosts 文件中添加主机名,标准 Linux 的 getaddrinfo 方法执行时,也会有接近两秒的耗时,但我们在 Java 代码中运行时却只有几十毫秒; 前文我们使用...Wireshark 抓包时提到,mdns 查询时存在重试机制,但标准 Linux 的 getaddrinfo 方法中没有看到对应的代码; 前面提到的5秒返回结果,其实不是返回结果,而是超时了。...但标准 Linux 的 getaddrinfo 方法中没有看到对应的超时控制代码; 因此,我们可以大胆猜测 MaxOS 系统对标准 Linux 代码进行了修改,加了本地缓存、重试、超时等机制。.../ifaddrs.c.html。...使用多种技术手段研究背后的原理,包括使用 Wireshark 抓包,使用 Arthas 工具定位到性能瓶颈,再转到 jdk 中查看对应的 native 方法实现,由于没找到最底层调用链路源码,转而参照标准Linux

4.3K40

libuv在cocos2d-x中的使用

Node.js的实践和应用,已经证明非常之成熟,本来之前项目用的是这个:clsocket https://github.com/DFHack/clsocket  当初选它的主要原因是它支持Windows、Linux...当然还有很多优秀的C++ TCP网络库,不过大部分似乎写的时候就只准备支持Linux/Unix,压根就没想支持Windows。而我们开发人员首先肯定是先在Windows下进行开发,神马?...psapi.lib shell32.lib userenv.lib ws2_32.lib Android下编译libuv.a,我安装了虚拟机然后折腾了好一会,最后放弃了,参考Linux...unix/thread.c \ src/unix/timer.c \ src/unix/tty.c \ src/unix/udp.c \ src/unix/proctitle.c \ src/unix/linux-core.c...\ src/unix/linux-inotify.c \ src/unix/linux-syscalls.c \ src/unix/pthread-fixes.c \ src/unix/android-ifaddrs.c

1.5K30

Linux - Linux内存管理

为了解决内存紧缺的问题,Linux引入了虚拟内存的概念。为了解决快速存取,引入了缓存机制、交换机制等。...要深入了解Linux内存运行机制,需要知道下面提到的几个方面。 首先,Linux系统会不时地进行页面交换操作,以保持尽可能多的空闲物理内存。...其次,Linux进行页面交换是有条件的,不是所有页面在不用时都交换到虚拟内存中,Linux内核根据“最近最经常使用”算法,仅仅将一些不经常使用的页面文件交换到虚拟内存中。...Linux虽然可以在一段时间内自行恢复,但是恢复后的系统已经基本不可用了。...Linux下可以使用文件系统中的一个常规文件或者一个独立分区作为交换空间。同时Linux允许使用多个交换分区或者交换文件。

52.1K41
领券