TGTGInsighttelegram intelligenceLIVE / telegram public index
← Python Заметки

TGINSIGHT SIMILAR POSTS

Најди сличен содржај

Изворен канал @pythonotes · Post #32 · 7 фев.

Скорее всего уже слышали, что складывать строки через + это плохая практика. Падение производительности, и всё такое. Без лишних слов, давайте измерять: from timeit import timeit def t1(): # складываем 10 строк через + из переменной t = 'text' for _ in range(1000): s = t + t + t + t + t + t + t + t + t def t2(): # склеиваем список строк через метод join arr = ['text'] * 10 for _ in range(1000): s = ''.join(arr) def t3(): # складываем через + но не из переменной а непосредственно инлайн объекты for _ in range(1000): s = 'text' + 'text' + 'text' + ... # всего 10 раз Теперь каждую строку склейки запустим по 10М раз >>> timeit(t1, number=10000) 0.21951690399964718 >>> timeit(t2, number=10000) 1.4978306379998685 >>> timeit(t3, number=10000) 0.2213820789993406 Хм, а нам говорили что через "+" это плохо и медленно ))) 😁 Тут стоит учитывать, что речь идёт о склейке множества длинных строк. Давайте изменим условия: def t4(): t = 'text'*100 for _ in range(1000): s = t + t + t + t + t + t + t + t + t def t5(): arr = ['text'*100] * 10 for _ in range(1000): s = ''.join(arr) def t6(): for _ in range(1000): s = 'text'*100 + 'text'*100 + ... # всего 10 раз >>> timeit(t4, number=10000) 12.795130728000004 >>> timeit(t5, number=10000) 2.642637542999182 >>> timeit(t6, number=10000) 0.2184546610005782 Вот, уже другой разговор, сразу видна разница, в среднем в 6 раз. Но погодите, почему последний тест t6() по скорости такой же как и t3()? Ведь строки теперь в 100 раз длиннее! Это вопросы оптимизации кода, какие простые изменения ускоряют или замедляют выполнение программы. Мы столкнулись с примером обхода обращения к переменной. Например, именно так работает директива #define в С++, во время компиляции подставляя значение переменной вместо ссылки на неё. В Python это тоже работает, но часто ли вы сможете встретить такой способ работы со строками? К сожалению, способ почти только теоретический. В целом, тесты показали то, что мы хотели. Делаем выводы самостоятельно. Полный листинг 🌍 #tricks

Резултати

Пронајдени 3 слични објави

Пребарај: #inmo

当前筛选 #inmo清除筛选

#GotThis#Hardware#INMO#AR_Glasses INMO Air2 由一副无线一体机眼镜和一个蓝牙戒指构成的个人AR眼镜终端方案。 可独立运行,可自行安装App。 双目垂直阵列光波导显示模组,640x400分辨率。 紫光展锐 W517 穿戴硬件平台, 2GB RAM,32GB eMMC,Android 9 (32位)。 450mAh电池,最高可提供6小时的通知提醒续航能力,或最高提供2小时持续亮屏使用续航能力。磁吸充电数据线。 - - - 看完了苹果的PPT,不如看一下这个现在就能¥3999预定然后带回家的眼镜? 使用体验上可以这么形容:把一块智能手表糊到了脸上,在上面跑电视盒子里的软件,操作模式也是电视盒子软件的方向键加一个确定和返回。 但重点是:它能用。真的能用。 相比于第一代的INMO Air来说,性能和可用性提升了不少。双目显示也让单眼看着难受的问题也彻底解决了。第一代现在看起来就像是个玩具一样。 至于这个眼镜和其他市面上的产品相比的优势: 1. 垂直阵列光波导光学方案,从正面是看不到用户所看到的画面的,隐私性强,并且通透性很好,几乎就是普通透明玻璃一样。。虽然代价是分辨率不行,光学模组成本高,亮度对比度相对较差一些。 2. 至少设计上像是个普通眼镜。得益于光波导方案的高通透性,可以做到几乎透明的镜片。配合这个可能要捐献时间的黑框眼镜外观,可以作为日常佩戴的眼镜使用。别的各种所谓的AR眼镜设计造型都非常夸张,戴着出门生怕别人不知道你是个十足的怪咖。 3. 无线一体机设计,可以独立运行软件。手机App只是一个补充的功能,提供类似智能手表或者手环的消息推送,以及一些辅助功能信息的显示。比起市面上那一推必须插着手机才能用的所谓的AR眼镜们来说,能独立运行这才是AR应该有的样子,而不是单纯的作为一个手机副屏在旁边吃灰。 // 不过小厂自然有小厂的问题。 // 比如因为品控问题,预售发货直接拖了一整个月。 // 原计划4月30日发的,硬是拖到6月3日。 // 但小厂的好处是:他们真的愿意听用户的意见。 // 操作方式除了 上下左右+确定+返回 的遥控器按键模式可以用于戒指和右侧触控板操作外,戒指还支持空中飞鼠模式,允许控制鼠标指针来做全屏点击。 // 目前来说画饼的功能: // 1. 眼镜本身支持的双目显示在硬件上实际上支持双目分别显示,也就是3D画面模式。只是分别双目显示的这个功能暂时还没有在SDK内开放。 // 2. 眼镜提供了全球最轻量的SLAM算法,可以同时使用传感器融合和右侧黑白广角相机来实现6DoF空间定位。但目前没有实装。 // 3. INMOVERSE元宇宙应用,实现“线下元宇宙结合”。目前没有实装。 // 4. 接听电话和蓝牙耳机功能。预计在6月份的OTA中推送。