我需要在大文件上用1021美元的多项式计算Crc16校验和,下面是我目前的实现,但它在大文件上相当慢(例如,一个90MB的文件需要大约9秒)。所以我的问题是如何改进我当前的实现(使其更快),我已经搜索并查看了一些实现表查找的示例,但我的问题是我不知道如何修改它们以包括polynom (可能我的数学不及格)。{ based on http://miscel.dk/MiscEl/CRCcalculations.html }
function Crc16(const Bu
在贾森·特纳( Jason )2016年的“实际性能实践”()演讲的时刻,他提到,完全支持所有可能的数据结构(我猜这意味着使每个字段和功能相同)都可能产生更大的代码“因为这会导致更多的数据结构被编译到代码中,所以数据段中的数据比在运行时计算的数据更多”(这句话是他在这个时间戳上实际说的话和他在结束时回答关于这个主题的问题时说的话的结合)。
校验和从消息的第一个字节开始。所以我一开始尝试在网上找到现有的功能。有许多功能,但似乎总是有具体的实现。因此,我无法生成一个有效的CRC值。在线位置示例:,def crc16(data : bytearray, offset , length):
if data is None or offset第二步是使用现有的C代码来尝试C类型实现。我已经修改了所提供的代码,因为在原始文档中有一些明显的类型(