跳转至

技术博客

解决:bufio.Scanner: token too long 错误

我在使用 bufio.NewScanner() 读取文件时遇到了 “token too long” 错误。错误原因是 bufio.Scanner 默认限制,最大的 token 大小是 64KB 当我们单行数据超过这个限制时,会报 token too long 错误。

这其实是一个非常典型的场景,在读取非常大的数据时(比如超过几十 MB)应该采用什么方法,因为一次读取非常大的数据可能效率不高。我们首先要考虑的数据是否可以分片处理,尽可能减少对于大内存的占用。如果必须要分配大内存,也应该合理的设置缓冲区大小。

君子不器

“君子不器”出自《论语·为政》,是孔子的一句名言。其字面意思是:君子不应该像器具那样局限于单一的用途或功能。这句话表达了孔子对君子品质的期望,即君子应该具备广泛的知识和才能,而不是局限于某一特定的技能或角色。

区块 DAG(Directed Acyclic Graph,有向无环图)

区块 DAG 是一种用于区块链的网状数据结构,与传统链式结构不同,它允许多个交易并行处理,提升系统扩展性和吞吐量。

一句话概括:DAG 是面向未来的新一代区块链,从单链进化到网状、从区块粒度细化到交易粒度、从单点跃迁到并发写入,是区块链从容量到速度的一次革新。

什么是通货膨胀?

通货膨胀(Inflation) 是指一个经济体中商品和服务的价格总水平在一段时间内持续、普遍上涨的现象。简单来说,就是“钱变毛了”——同样数量的货币能买到的东西变少了。

农产品价格和通胀的关系

农产品价格上涨之所以会引发通货膨胀,是因为农产品在经济体中具有基础性地位,其价格波动会通过多种渠道传导至整体物价水平。以下是具体机制和逻辑链的详细分析:

零知识证明:不泄露秘密的证明艺术

你能证明自己知道某个秘密,却不透露秘密本身吗?

这听起来像是悖论,但零知识证明(Zero-Knowledge Proof, ZKP)让这成为现实。它是密码学领域最优雅的发明之一,正在重塑区块链隐私、身份认证和数据安全的未来。

高频 R/W 场景下的性能设计方案

对于这个问题我们需要回归到计算机读写的核心上,计算机的读写速度是有限的,所以需要把数据缓存起来,来提高读写速度。为什么要使用缓存呢?从硬件角度我们知道计算机是有多级缓存架构的,每一级存储设备的读写速度是指数级下降的,越靠近终端存储设备(机械硬盘、固态硬盘)其读写速度越慢,越靠近 CPU 的存储设备其读写速度越快。

缓存是一个有着更快的查询速度的存储技术,这里的更快是指比起从初始的数据源查询(比如数据库,以下都称作数据库)而言。我们经常会把频繁请求的或是耗时计算的数据缓存起来,在程序收到请求这些数据的时候可以直接从缓存中查询数据返回给客户端来提高系统的吞吐量,现在我们来看看有哪些缓存模式可以考虑。

2025-03-23 有感

绕着困难走的人永远不会成为成功的人。一个成功的人,他是主动迎接挑战的人,因为他要开辟新赛道,他如同走在沙漠当中一样,这是任正非的话。

比特币的创新设计

比特币在创新上提出了很多亮点,值得我们去学习。主要考虑了避免作恶、负反馈调节和共识机制三个方面。

避免作恶

避免作恶基于经济博弈原理。在一个开放的网络中,无法通过技术手段来保证每个人都是合作的。但是可以通过经济博弈来让合作者受益,让非合作者遭受损失和风险。