【发布时间】:2012-11-08 11:24:32
【问题描述】:
我有 200 个组。每组有 100 台设备,即总共 20000 台设备分为 200 组,每组 100 台。
现在,当每个设备向服务器注册时,服务器会为该设备分配一个组 ID。 (100 个设备具有相同的组 id。)在稍后阶段,服务器发送具有组 id 的多播数据,以便将数据接收到具有该组 id 的所有设备。
问题是我需要为每个组分配一块内存(比如 25 字节)来存储数据,以便该组中的所有设备都使用该块进行处理。我的想法是分配一个大块(比如 25 * 200 = 5000 字节)并为每个组分配一个 25 字节的块(grp0 指向起始地址,grp1 指向起始+25 地址,依此类推)。
这是最好的方法吗?还有其他想法吗?
【问题讨论】:
-
让我们看看:您想通过数组中的索引找到一个组
g。这需要O(1)时间 => 好。你想分配一个 5KB 的内存块。这不是太多=>好。确保分配(200 * sizeof(struct group))字节,而不是 '5000' :) -
您所说的“最佳”是什么意思?哪种方式最好?
标签: c logic analytical