相关疑难解决方法(0)

如何查看Linux的RAM视图以确定碎片

我所知道的唯一相关程序是pmap,但这只打印了一个进程的内存.

我想看看物理内存是如何被占用的,以及整个物理RAM的进程/库(包括内核)(与进程'POV pmap)相比.

理想情况下还有图形界面.

你知道有没有这样的工具?

我知道图书馆引入的歧义.如果是这种情况,它可以显示1像素宽的线和箭头到该库的实际位置.

我需要什么呢?查看RAM碎片.

linux ram

26
推荐指数
1
解决办法
2万
查看次数

通过域套接字传输的单个数据包大小的实际限制是什么?

我们假设为典型的服务器 - 客户端程序创建了一个Unix域套接字.客户端在套接字上发送10GB缓冲区,同时由服务器使用.

操作系统(Linux/BSD)将10GB缓冲区分成多个数据包并发送/使用它们,还是一次性发送?

如果不能一次发送10GB的域套接字缓冲区,那么单个数据包的实际大小限制是多少?

约束:

  • 该程序将在Linux 2.6.32+和FreeBSD 9+上运行
  • 要发送的缓冲区大小从3字节到最大10GB不等.

unix sockets linux posix ipc

19
推荐指数
1
解决办法
2万
查看次数

KMALLOC大小分配

KMALLOC仅在页面大小内存中分配,还是可以分配更少?kmalloc可以分配的大小是多少?我在哪里可以找到它的描述,因为我看到它并没有真正说明它分配了多少内存?我想知道的是KMALLOC分配的实际大小是多少.它是否分配2的功率大小?它只是从缓存中找到准备好的自由对象吗?

c linux memory linux-kernel

9
推荐指数
2
解决办法
3万
查看次数

找出AF_UNIX + SOCK_SEQPACKET最大邮件大小

Hy,我想知道是否有任何可能找出除实验之外的SEQPACKET的最大长度(a-la为(i = 0; i <100 ... 00; i ++)send(...))).

而且,第二个问题:

如果我收到errno == EMSGSIZE尝试发送AF_UNIX SEQPACKET,是否保证它是因为最大邮件大小,或者可能还有其他一些原因?

对不起我的英语不好.

c unix sockets linux

4
推荐指数
1
解决办法
2229
查看次数

在 UNIX 进程之间交换中等大量数据的最佳方法是什么?

在 UNIX 进程之间交换中等大量数据(数兆字节,但不是千兆字节)的最佳方法是什么?

我认为,这将是内存映射文件,因为大小限制似乎足够可以忍受。

我需要双向通信,所以普通管道没有帮助。据我所知,套接字和 UDP 存在大小限制(另请参阅此处)。不确定 TCP 是否是在 . 的子进程和父进程之间进行通信的好主意fork()

阅读诸如此类的相关问题,有些人推荐了共享内存/ mmap,其他人推荐了套接字。

还有什么我应该调查的吗?例如,是否有一些更高级别的库可以通过提供数据的 XML 序列化/反序列化来帮助 IPC?

根据评论进行编辑:

在我的特殊情况下,有一个父/控制器进程和几个子进程(不能使用线程)。控制器根据要求向儿童提供一些可能适合一个 UDP 数据包的关键数据。孩子们对按键数据进行操作,并向控制器提供基于按键的信息(信息大小可以是10-100MB)。

问题:响应数据的大小、通知父级有关密钥请求的机制、同步 - 父级在传递给子级后必须从其列表中删除密钥,不应发生重复的密钥处理。

Boost 和其他第三方库(不幸的是)不得使用。我也许可以使用SunOS 5.10系统提供的库。

c c++ serialization ipc mmap

3
推荐指数
1
解决办法
2716
查看次数

标签 统计

linux ×4

c ×3

ipc ×2

sockets ×2

unix ×2

c++ ×1

linux-kernel ×1

memory ×1

mmap ×1

posix ×1

ram ×1

serialization ×1