因此,作为一项挑战,为了提高性能,我正在用汇编语言编写一个简单的服务器。我知道的唯一方法是通过系统调用。(通过 int 0x80)显然,我将需要比在汇编或加载时分配的内存更多的内存,所以我阅读并决定我想使用 sbrk(),主要是因为我不理解 mmap() :p
无论如何,Linux不为sbrk()提供中断,只为brk()提供中断。
那么...如何找到当前程序中断以使用brk()?我考虑过使用 getrlimit(),但我不知道如何获取资源(我猜的进程 ID)来传递给 getrlimit()。或者我应该找到其他方法来实现 sbrk() ?
在决定在我的简单服务器(linux)中实现异步套接字时,我遇到了一个问题。我打算不断地poll(),并在调用之间进行一些清理和缓存。现在看来这很浪费,所以我做了更多的挖掘工作,找到了一种可能在I / O上实现一些回调的方法。
如果我使用O_NONBLOCK创建了套接字,请使用SIOCSPGRP ioctl()在I / O上发送SIGIO,并使用sigaction()在I / O期间定义回调函数,是否会导致性能下降,更重要的是,它将起作用吗? 。
另外,我可以为不同的插座定义不同的功能吗?