桃子:之前一直只是把它用在树莓派 Zero 2W 上,奇怪的是一直不算太慢(勉强跟手)。直到今天在 Intel NUC 上面才发现慢得离谱,键盘打字输入的时候很卡(奇怪的是显示结果的时候(比如 ls))却很快,不知原因。 一个已知的原因就是数据发送之前一直没有做 MTU 探测(使用的蓝牙库不提供稳定获取 MTU 的接口),预设了一个非常小的值:64. 所以今天写了几十行代码,在连接成功后立即用自定义协议做了 MTU 探测。 原来的默认的64,现在在NUC上探测到512,直接提升了8倍速度。前者从日志看是64*16=1KB/s,后者 iperf 测试起来是 8KB/s。 使用起来已经很跟手了。(仍然不理解 NUC 为什么会比 Zero 慢,但是 Zero 昨天已经卖掉了,不能再测试。) (iperf 看起来依然不太稳定,具体原因有待调查,可能跟多次连接有点;单连接使用 ssh 长时间都不会有问题。) #
雨帆:长文写完了?我都准备再写一篇了。 #
雨帆:静候大作。像我现在都没有心情和时间写博客了,但我就喜欢看你们写。 #
桃紫今天热爱生活了吗?:超级长文,几百张图那种[doge]。还在写还在写! #
雨帆:文章呢?🌚 #
桃紫今天热爱生活了吗?:昨晚写文章到三点多🥵🥵🥵。 #
雨帆:有对象!!!不用 new 一个!!! #
桃子:在写了,在写了,🥵🥵🥵。我要清库存了。 #
雨帆:一个月没有更新文章了,博客源码倒是改了不少。 #
桃紫今天热爱生活了吗?:老早就该大面积推广了,可惜国内运营商垄断经营➕️不思进取。 现在 eSIM 闲置,想买张流量卡都不能,真作孽。 #
2broear:看来esim推广在即,可惜一国两制 #
桃子:我感觉不太……像。(当然我不熟悉 Java) Java 里面每一个 try 后一般都要紧接 catch、或者由外部接。但是我这种写法可以疯狂地在同一个函数里面多次 Must(只在自己认为不太可能出错的地方),然后在 defer 那儿处理一次。所有的错误还是当前函数生成的,控制流并不算有太大变化。 如果错误是明确可能因为参数传递错误等发生的,我就不会使用 Must,因为它不方便包含自定义消息和日志输出。 最重要的一点是:不管哪里 Must 失败了,都不会导致线程崩溃。自己不 defer 的除外,这是活该。 #
雨帆:所以你重新发明了 Java 里面的 try catch。[狗头] #
桃子:天杀的,怎么挖到这里来的…… #
雨帆:[狗头] 太可惜了,要不然可以来我这大水管。 #
桃子:之前一直只是把它用在树莓派 Zero 2W 上,奇怪的是一直不算太慢(勉强跟手)。直到今天在 Intel NUC 上面才发现慢得离谱,键盘打字输入的时候很卡(奇怪的是显示结果的时候(比如 ls))却很快,不知原因。 一个已知的原因就是数据发送之前一直没有做 MTU 探测(使用的蓝牙库不提供稳定获取 MTU 的接口),预设了一个非常小的值:64. 所以今天写了几十行代码,在连接成功后立即用自定义协议做了 MTU 探测。 原来的默认的64,现在在NUC上探测到512,直接提升了8倍速度。前者从日志看是64*16=1KB/s,后者 iperf 测试起来是 8KB/s。 使用起来已经很跟手了。(仍然不理解 NUC 为什么会比 Zero 慢,但是 Zero 昨天已经卖掉了,不能再测试。) (iperf 看起来依然不太稳定,具体原因有待调查,可能跟多次连接有点;单连接使用 ssh 长时间都不会有问题。) #
雨帆:长文写完了?我都准备再写一篇了。 #
雨帆:静候大作。像我现在都没有心情和时间写博客了,但我就喜欢看你们写。 #
桃紫今天热爱生活了吗?:超级长文,几百张图那种[doge]。还在写还在写! #
雨帆:文章呢?🌚 #
桃紫今天热爱生活了吗?:昨晚写文章到三点多🥵🥵🥵。 #
雨帆:有对象!!!不用 new 一个!!! #
桃子:在写了,在写了,🥵🥵🥵。我要清库存了。 #
雨帆:一个月没有更新文章了,博客源码倒是改了不少。 #
桃紫今天热爱生活了吗?:老早就该大面积推广了,可惜国内运营商垄断经营➕️不思进取。 现在 eSIM 闲置,想买张流量卡都不能,真作孽。 #
2broear:看来esim推广在即,可惜一国两制 #
桃子:我感觉不太……像。(当然我不熟悉 Java) Java 里面每一个 try 后一般都要紧接 catch、或者由外部接。但是我这种写法可以疯狂地在同一个函数里面多次 Must(只在自己认为不太可能出错的地方),然后在 defer 那儿处理一次。所有的错误还是当前函数生成的,控制流并不算有太大变化。 如果错误是明确可能因为参数传递错误等发生的,我就不会使用 Must,因为它不方便包含自定义消息和日志输出。 最重要的一点是:不管哪里 Must 失败了,都不会导致线程崩溃。自己不 defer 的除外,这是活该。 #
雨帆:所以你重新发明了 Java 里面的 try catch。[狗头] #
桃子:天杀的,怎么挖到这里来的…… #
雨帆:[狗头] 太可惜了,要不然可以来我这大水管。 #