gpt4 book ai didi

iPhone:对于更快的蓝牙最有用的技术是什么?

转载 作者:太空狗 更新时间:2023-10-30 03:29:13 27 4
gpt4 key购买 nike

我正在使用 GameKit 将点对点蓝牙添加到 iPhone 射击游戏中,因此速度至关重要。我每秒钟发送大约 40 条消息,其中大部分使用更快的 GKSendDataUnreliable,全部使用 NSCoding 进行序列化。在 3G 和 3GS 之间进行测试时,这使 3G 速度比我希望的要慢得多。我想知道我应该在哪里集中精力来加快速度。

GKSendDataReliable 慢了多少?对于到达那里的少数数据包,发送 GKSendDataUnreliable 并让对等方发送确认是否更快,这样如果我没有在 100 毫秒内收到 Ack,我可以再次发送?

使用常规 C 数组创建 NSData 实例比使用 NSCoding 协议(protocol)归档要快多少?这个序列化过程(大约十几个 float )是否像您从对象创建/取消分配开销中预期的那样慢,还是发生了特别缓慢的事情?

我听说(例如)发送四组单独的数据比发送四倍大小的一组数据要慢得多。通过发送单独的数据包,当它们同时发生时,这些数据包不会总是放在同一个数据包中,我会节省大量资金吗?

还有其他我错过的蓝牙性能 secret 吗?

感谢您的帮助。

最佳答案

我不是蓝牙专家,但一般使用可靠发送数据的速度是不可靠发送数据速度的 1.5 倍。我会避免尝试使用不可靠的方法发回 ACK,因为那样你将不得不放入各种荒谬的逻辑来检测 ACK 是否未能到达,这会比使用可靠的发送更慢.

发送数据具有高延迟,这意味着发送 4 个小数据包比发送 1 个具有 4 倍大小有效负载的数据包需要更多时间。任何时候您都可以增加有效负载大小以减少发送次数,您将获得性能优势。

如果您知道要发送和接收的数据的大小和形状,您还可以通过发送字节数组或数字数组来挤出一些性能,而不是使用 NSCoding,因为 NSCoding 将消耗一些时间来序列化和反序列化(如果您只是发送数组,则可以跳过此步骤),使用 NSCoder 发送的数据量将比使用原始数组的数据量略多。

关于iPhone:对于更快的蓝牙最有用的技术是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3038172/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com