可能不熟悉seed用法的看到这里会很疑惑,我不是都用了seed吗?为何我随机出来的数字都是一样的?不应该每次都不一样吗?
在上一篇文章中,分享了一个跨平台的头文件是长成什么样子的,这个头文件对于 windows 平台下更有意义一些,因为要处理库函数的导入和导出声明(dllexport、dllimport)。
近期做了一个需求,是检测某个 IP 是否在若干 IP 段内,做固定地点 IP 筛查,满足特定业务需求。
学习地址自己还原 /s/1p2gVcBMq87ko35yoWzyblQ 提取码: fajt
Javen今天带来的是google-protobuf在前后端的应用,为了降低大家的阅读负担,公众号只节选了其中基础部分以及在Cocos Creator的使用。大家可以通过阅读原文更多地了解到google-protobuf在Java、QQ玩一玩等平台上的使用。
唯一ID算法Snowflake相信大家都不墨生,他是Twitter公司提出来的算法。非常广泛的应用在各种业务系统里。也因为Snowflake的灵活性和缺点,对他的改造层出不穷,比百度的UidGenerator、美团的Leaf、索尼的Sonyflake等等。这篇帖子主要是讲一下原生的Snowflake算法、缺点及改造方案,并分析索尼的Sonyflake源码对原生Snowflake的改造,
广泛使用的headless browser解决方案PhantomJS已经宣布不再继续维护,转而推荐使用headless chrome
使用json.Unmarshal() 反序列化时,出现了科学计数法,参考代码如下:
近期发现生产环境一业务应用系统,不定时发生数据库连接断开,再次请求后正常连接问题。 系统日志中具体错误信息如下:ORA-03135: 连接失去联系\n进程 ID: 9349\n会话 ID: 2834 序列号: 64475"。 oracle版本:11.2.0.4 日志信息:
本文约1600字,建议阅读5分钟本文将做一个简单的介绍和评测,为什么pandas选择Arrow作为后端。 Pandas是机器学习中最常用的一个库了,我们基本上每天都会使用它。而pandas使用了一个“NumPy”作为后端,这个我们也都是知道的,但是最近 Pandas 2.0 的RC版已经最近发布了。这个版本主要包括bug修复、性能改进和增加Apache Arrow后端。当涉及到使用DF时,Arrow比Numpy提供了更多的优势。 PyArrow可以有效地处理内存中的数据结构。它可以提供一种标准化的方式来表示
最初,我们用的是老版本的 Gorm,但是因为老版本不支持批量插入的功能,所以我们将 Gorm 做了升级,升级到1.21.9版本。
处理大规模数据集时常是棘手的事情,尤其在内存无法完全加载数据的情况下。在资源受限的情况下,可以使用 Python Pandas 提供的一些功能,降低加载数据集的内存占用。可用技术包括压缩、索引和数据分块。
我们已经知道,原子操作即是进行过程中不能被中断的操作。也就是说,针对某个值的原子操作在被进行的过程当中,CPU绝不会再去进行其它的针对该值的操作。无论这些其它的操作是否为原子操作都会是这样。为了实现这样的严谨性,原子操作仅会由一个独立的CPU指令代表和完成。只有这样才能够在并发环境下保证原子操作的绝对安全。 Go语言提供的原子操作都是非侵入式的。它们由标准库代码包sync/atomic中的众多函数代表。我们可以通过调用这些函数对几种简单的类型的值进行原子操作。这些类型包括int32、int64、uint32
作者:tayroctang,腾讯 PCG 后台开发工程师 本文从 5W1H 角度介绍了分库分表手段,其在解决如 IO 瓶颈、读写性能、物理存储瓶颈、内存瓶颈、单机故障影响面等问题的同时也带来如事务性、主键冲突、跨库 join、跨库聚合查询等问题。anyway,在综合业务场景考虑,正如缓存的使用一样,本着非必须勿使用原则。如数据库确实成为性能瓶颈时,在设计分库分表方案时也应充分考虑方案的扩展性,或者考虑采用成熟热门的分布式数据库解决方案,如 TiDB。 阅读此文你将了解: 什么是分库分表以及为什么分库分表 如
为什么float64可能出现精度缺失,就必须要搞清楚二进制科学计算法和IEEE754标准的基本原理。
作者:link 导语 写下这篇文章的缘由是因为在项目过程中,碰到了一个使用JavaScript处理 UINT64 类型数字的坑。 与大部分现代编程语言(包括几乎所有的脚本语言)一样,JavaScr
群里的每一次提问,都是一次面试,如果可以,我都会尝试解答。这里只晒了一张图,没有上下文,我提示代码不全,小伙伴后来补充了相关代码和报错:
与大部分现代编程语言(包括几乎所有的脚本语言)一样,JavaScript中的数字类型是基于 IEEE 754 标准来实现的,该标准通常也被称为“浮点数”。JavaScript使用的是“双精度”格式(即64位二进制)。
官方指南 由 google 开发,是一款语言中立、平台中立、开源的远程过程调用(RPC)系统。
Go 语言不但拥有可以独立代表 Unicode 字符的类型rune,而且还有可以对字符串值进行 Unicode 字符拆分的for语句。
每当周围漂亮的小姐姐和别人打游戏“嗨”到飞起而我无法加入其中时,一股挫败感便会直冲我的天灵盖。
背景 语言选择:一方面,个人喜好选择了golang,另一方面,编译型语言,理论上速度会好一些。 其他原因:历史工具是shell使用各种linux命令实现的,在过滤日志这一块不是很精准。 工具构想 解决当前存在的问题,日志查询不完整 效率更高效 分析功能更全面 支持多种输出,方便后续告警分析使用 工具实现历程 工具设想: 首先,如何准确的找到日志数据? 日志目录下会有很多的日志文件,各式各样的日志内容 日志会不断的回滚,每一种日志都会有回滚数量个日志文件 解决方案的迭代过程 筛选必要文
意外的问题总会让人措手不及,今天与大家分享的就是NVelocity设置缓存的问题,之前刚google了一下发现没什么太好的解决方案,希望在这能为需要的朋友找出满意的答案,上一篇blog刚说了NVelocity的用法,这就不在重复了,如需要的朋友,请点击这里,查看NVelocity的用法和使用参考文档已经下载最新dll地址。 很多朋友可能也会遇到这样的问题,设置缓存的代码已经写了为什么不起作用呢,刚开始我也很苦闷,下来看设置缓存的代码吧,如下: // 设置缓存 velocityEngine.AddPr
1.atomic包里的几个函数以及sync包里的mutex类型,提供了解决方案 2.原子函数能够以很底层的加锁机制来同步访问整型变量和指针 3.atomic.AddInt64(&counter, 1)的原理是强制同一时刻只能有一个goroutine运行并完成这个加法操作
python 默认使用的是 double 精度, 浮点数在计算机中都是以二进制保存,当有无法精确表示的二进制数字时便会产生截断, 这就导致了在有限精度下,电脑为自己把精度范围外的小数“掐掉”,导致结果不准确。
本文主要描述,使用布隆过滤实现高效缓存。文中采用数组做为缓存,如果需要高并发命中,则需将文中的数组换成Redis数据库。
作者:dcguo,腾讯 CSIG 电子签开放平台中心 分享 Golang 并发基础库,扩展以及三方库的一些常见问题、使用介绍和技巧,以及对一些并发库的选择和优化探讨。 go 原生/扩展库 提倡的原则 不要通过共享内存进行通信;相反,通过通信来共享内存。 Goroutine goroutine 并发模型 调度器主要结构 主要调度器结构是 M,P,G M,内核级别线程,goroutine 基于 M 之上,代表执行者,底层线程,物理线程 P,处理器,用来执行 goroutine,因此维护了一个 gorout
func Stat(name string) (fi FileInfo, err error)
在我前面一篇文章Golang受欢迎的原因中已经提到,Golang是在语言层面(runtime)就支持了并发模型。那么作为编程人员,我们在实践Golang的并发编程时,又有什么需要注意的点呢?下面我会跟大家详细的介绍一些在实际生产编程中很容易踩坑的知识点。
JSON Web Token(JWT)是一个开放标准(RFC 7519),它定义了一种紧凑且自包含的方式,用于在各方之间以JSON方式安全地传输信息。由于此信息是经过数字签名的,因此可以被验证和信任。可以使用秘密(使用HMAC算法)或使用RSA或ECDSA的公钥/私钥对对JWT进行签名。
之前学习了一些并发原语,已经认为差不多可以应对很多场景了,但是为什么还要学习原子操作呢?原来,在一些场景中,使用并发原语可能更加复杂,为了更轻松地实现底层的优化。
广交会线上举办,在第三方服务不能保证稳定性的情况下,为保证官网稳定性,新增数据聚合服务,用于缓存数据,并保护第三方服务,且在第三方服务失败的情况下,能够返回缓存的数据,保证前台能够拿到返回数据。
2024 年开年,Java “十亿行挑战”(1BRC)火爆外网。该挑战赛要求开发者编写一个 Java 程序,从一个包含十亿行信息的文本文件中检索温度测量值,并计算每个气象站的最小、平均值和最高温度。“十亿行挑战”的目标是为这项任务创建最快的实现,同时探索现代 Java 的优势。
为了选出最优的解决方案,我搭建了一个简单的命令行工程,准备了两个大小为912MB的文件,并且这两个文件内容完全相同.在本文的最后,你可以看到该工程的Main方法的代码.
什么是ProtoBuffer ProtoBuffer是一种与语言无关,平台无关,可扩展的序列化结构化数据的方法,用于通信协议,数据存储等,ProtoBuffer由Google开发,目前各大互联网公司普遍使用,在使用时需要编写.proto文件,目前ProtoBuffer有两个版本,Pro2、Pro3,这次主要分享的是Pro3。 ProtoBuffer的特点 相比xml,json等数据序列化方式,ProtoBuffer具有如下特点 体积小3到10倍,(其数据格式紧密,没有多余的空格,括号,尖括号,key等) 性
导语 | 本文主要对go并发基础库、扩展以及三方库的一些使用和技巧进行介绍, 并且指出一些常见问题,以及对一些并发库的选择和优化进行分析和探讨,为读者提供一些相关经验和交流分享。 go原生/扩展库 提倡的原则 不要通过共享内存进行通信;相反,通过通信来共享内存。 [如何贯彻这个原则的demo1.3.5](#有锁的地方就去用channel优化) Goroutine (一)goroutine并发模型 调度器主要结构 主要调度器结构是M、P、G: M,内核级别线程,goroutine基于M之上,代表执行者
在前一章中,我们讨论了并发的基础。现在是时候看看 Go 开发人员在使用并发原语时所犯的实际错误了。
Bitcask是一种“基于日志结构的哈希表”(A Log-Structured Hash Table for Fast Key/Value Data)
构造函数[1]是创建新对象的函数,特别是Composite Types的实例。在Julia中,类型对象还充当构造函数:它们在作为参数应用于元组时会创建自己的新实例。引入复合类型时,已经简要提到了这一点。例如:
在高并发系统中,生成唯一的、时间有序的ID是常见需求。Twitter的Snowflake算法是一个经典的解决方案。本文将详细介绍由一个Go实现的雪花算法,并分析其核心代码。
描述: 假设一个篮子最大载重为W,要求从多个不同重量物品中挑选出部分,使得其重量之和刚好等于W。输入若干个正整数,其中第一个数值为篮子载重,后面若干个数值表示不同物品的重量,请判断是否存在方案能刚好装满篮子。存在装满篮子的方案则输出YES,并按照输入顺序输出装入篮子的物品重量,以空格隔开;若不存在则输出NO。备注:本题中只存在一种装载方案。
新的Prometheus 2.13.0版本已经发布,并且一如既往地包含了许多修复和改进。你可以到这里看发生了什么变化。然而,有一个特性是一些项目和用户一直在等待的:分块的、流式的远程读API版本。
上一节提到,golang中直接使用关键字go创建goroutine,无法满足我们的需求。主要问题如下
经过沟通,了解到问题的本质:“Nested 字段召回数据结果中将包含特定字符‘/’的字符串排在前面”。
(如果出现GOROOT blabla之类的,执行go env -w GO111MODULE=off )
最近在用 Go 写业务的时碰到了并发更新数据的场景,由于该业务并发度不高,只是为了防止出现并发时数据异常。
前言 最近换了新工作终于凑齐一些有趣的bug与问题了, 比如在ts方面做了深入的研究, 国际化开发方面有了一些思考等等, 总之新的工作刚刚开始就收获满满, 有对'字节跳动'国际化业务感兴趣的同学可以把简历砸过来, 将来一起挑战各种有趣的难题。(当然除了国际化其它岗位我也可以内推的! 🙋🏻) 小声说: 最近实在是好多事要忙, 像3d地球那个系列只能过段时间更新了...😭 1: url的编码操作 当我们通过url来传递一些信息的时候, 可能会出现一些读取的问题,我们常用encodeURI与encodeURI
领取专属 10元无门槛券
手把手带您无忧上云