zxing - 在 Squeak 中实现了 ZXing 的 Reed Solomon 纠错。很慢
问题描述
最终完成(主要是)我的 Reed Solomon 实施后,我感到多巴胺很高。我的解码工作正常,dataMatrix256 和 QRCode,包括损坏修复,在 t/2 错误内。它非常慢,使用起来很慢。为热点编写插件可能会加快速度,这些插件位于解码端:GFPoly evaluateAt (40.1%)、Decoder runEuclideanAlgorithm(38.5%)、Decoder findErrorLocations(12.6%) 和 Decoder find ErrorMagnitudes(2.3%)。
它是用我最喜欢的语言环境 Squeak 编写的。我已经使用了 20 多年。它是如此美丽!开发规则是#GetItWorking,#GetItWorkingRight #GetItWorkingFast。
如果您有兴趣查看代码,请访问http://squeak.org并获取 squeak。运行后,右键单击 World Menu 并选择 open...Monticello Browser。添加 HTTP 类型的新存储库并输入 Cryptography 存储库。
MCHttpRepository
location: 'https://www.squeaksource.com/Cryptography'
user: 'squeak'
password: 'squeak'
打开一个工作区(世界菜单 - > 工作区)并运行此代码(粘贴到工作区,选择它并右键单击它。):
Installer ss
project: 'Cryptography';
install: 'ProCrypto-1-1-1';
install: 'ProCryptoTests-1-1-1'.
现在您可以打开浏览器查看代码(类别:CryptographyRSFEC 和 CryptographyRSFECTests)或打开 TestRunner 来测试它(世界菜单 -> *)。
加速工作:我将 OrderedCollection 使用转换为 Array 使用以改进 #at:lookup 和 #at:put:set 调用。代码发布到 Cryptography。OrderedCollection 从分析中掉了下来。接下来是插件支持。
**Leaves**
16.5% {22153ms} RSFECGenericGF>>exp:
9.6% {12888ms} RSFECGenericGF>>maskValue:
9.1% {12205ms} RSFECGenericGF>>addOrSubtract:by:
7.1% {9561ms} RSFECGenericGF>>log:
6.5% {8694ms} RSFECGenericGF>>normalizeIndex:
4.7% {6299ms} RSFECGenericGF>>multiply:by:
2.6% {3512ms} RSFECGenericGFPoly>>evaluateAt:
1.3% {1780ms} RSFECGenericGFPoly>>addOrSubtractPoly:
1.3% {1682ms} RSFECGenericGFPoly>>multiplyByMonomialDegree:coefficient:
6.0% {8097ms} RSErasureGalois>>normalizeIndex:
1.7% {2336ms} RSErasureGalois>>maskValue:
1.6% {2140ms} RSErasureGalois>>tableMultiply:by:
1.5% {2040ms} RSErasureGalois>>add:by:
1.3% {1797ms} RSErasureGaloisTest(TestCase)>>assert:description:
1.2% {1669ms} RSErasureGalois>>galoisMultiply:by:
解决方案
推荐阅读
- seaborn - ValueError: min() arg is an empty sequence - 探索性分析
- r - 如何在 R 中将函数参数捕获为字符串?
- python - 最大的森林(亚马逊面试题)
- regex - 分隔符之间的正则表达式单个字符
- python - Python验证用户输入的数据问题
- angular - 在多组件角度使用组件延迟加载?
- apache-kafka - Kafka 代理在从生产者处获取消息时是否对页面缓存/磁盘进行零拷贝写入?如果是这样,它如何进行任何健全性检查?
- styled-components - 使用 Styled-Components,为什么我不能从条件中访问主题?
- javascript - 有没有办法从 Vue.js Mixin 调用递归函数?
- javascript - PageSpeed Insights:资源被延迟时显示“阻塞”