Go语言常见序列化协议全面对比 从易用性、性能、内存占用、编码后大小等几个方面综合考虑 ProtoBuf 胜出。Gob 从性能和 I/O 带宽占用上都和 ProtoBuf 差不多,唯一劣势是编解码时内存占用较多。考虑到不用再写 IDL 带来的易用性,如果整个系统内不存在使用除 Go 以外其他语言的服务,是更合适的选择。
如何优雅的让Webstorm按照eslint规则reformat 前端项目中经常会有不同的规范,比如Airbnb的stardend标准,要求每行结尾不加分号、字符串必须使用单引号等。但Webstorm中有自己的一套代码规范,格式化的时候根本不按照eslint来,怎么才能让Webstorm遵循eslint的规则呢?...
在MacOS中将HMCL添加到Launchpad启动台 在Mac上玩Minecraft,官方的启动器又慢又不方便管理Mod。所以需要搞一个启动器,看了一下HMCL是个不错的启动器,但是它只提供了Jar包,没有打包成Application。执行起来不够优雅和方便。所以稍微研究了一下怎么包装成一个Application。...
FreeCAD快速开始 前言FreeCAD是一个三维参数化建模应用程序。它主要用于机械设计,但也适用于其他所有需要精确3D建模和控制模型历史的用途。FreeCAD从2002年开始开发,提供了大量的功能,虽然功能还有待继续完善,但对于业余爱好者和小型工作室来说也已经足够了。FreeCAD forum社区用户活跃,你可以找到大量的高质量项目示例。如果要在生产中使用FreeCAD,建议看看这个。像所有的自由软件项目一样,FreeCAD的发展离不开其社区的支持。如果你喜欢,你可以通过各种方式捐赠和帮助FreeCAD,比如写文档和翻译
计算机的时间魔法(定时器)——总结 从硬件层面到Java层面,理顺整个流程是一件很爽的事情,阅读这些源码让你有一种醍醐灌顶的感觉。心中有数仿佛自己也能写个操作系统了的自信(错觉)。为了大家更好的回顾整个流程,我用图示的方式从头到尾整理了一遍,希望能够对大家有所帮助。整篇文章都是基于我自己的理解来做的,难免有些错误、疏漏,还请大家指正。最后的最后,还有一个相对哲学的问题,振荡器是通过电来驱动的。如果时间停止,振荡器还能工作吗?...
Java中的定时器 一、Timer和TimerTaskTimer是jdk中提供的一个定时器工具,使用的时候会在主线程之外起一个单独的线程执行指定的计划任务,可以指定执行一次或者反复执行多次。TimerTask是一个实现了Runnable接口的抽象类,代表一个可以被Timer执行的任务。1. 使用schedule(TimerTask task, long delay, long period)延迟 delay 执行,并每隔period 执行一次public static void main(String[] ar
从Java Thread到OS Thread 我们从Java的线程开始,分析一些多年以来的疑问,到底Java的Thread和系统的Thread有什么关系呢?一、线程的表现形式1. 从Thread开始我们从Thread类看起。在Java里,Thread类就用来表示一条线程。但很明显,Java的Thread只是在应用层面的表象,如何真正创建一条线程,是在JVM中完成的。public class Thread implements Runnable { // ... public synchronized void star
操作系统对定时器的应用 到了在操作系统层面,可以依靠硬件产生的定时器中断做很多事情,同时,操作系统的定时器怎么实现呢?我们来分析一下。1. 硬件定时器现在的Linux对时间的管理是很复杂的,大体可以分为高精度时钟和低精度时钟。两者互不兼容。在 Linux 2.6.16 之前,内核只支持低精度时钟。内核围绕着 tick 时钟来实现所有的时间相关功能。tick 是一个定期触发的中断,一般由 PIT 提供,大概 10ms 触发一次 (100HZ),精度比较低。如果频率设置的太高,就会严重影响系统性能。(1) tick以 x86
计算机的定时器实现(下) (在上篇中,我们通过简单的8051芯片,初步窥探了一下定时器的原理和如何驱动。这篇我们来探讨更实际的x86架构)5. x86的定时器实现(1)发展历程x86架构已经有几十年的历史了,随着科技不断进步,定时器的实现也是经历了几个阶段的发展的。PICIntel的传奇中断控制芯片8259在1976年就被用在8085系列产品中。PC在1981年出生时借鉴了这种思想,8259的升级版8259A被用于中断控制,而其统治PC长达近10年,直到486电脑的诞生。APIC80486DX在1990年上市,其
计算机的定时器实现(上) 1. 计算机基本组成冯·诺依曼体系架构下的计算机,是由运算器、控制器和存储器组成的。现代计算机通常还会有外部存储器和各种外围的I/O设备组成。限于篇幅,我们只能简单的聊一聊运算器、控制器和存储器,不敢深入原理,否则就是另外一个专题了。大家如果有兴趣,我们后面可以再搞一个专题专门来聊一聊。我以前上学的时候,听过一种很奇怪的说法,说是冯·诺依曼体系就是二进制计算机。其实冯·诺依曼跟二进制没啥关系,真要说二进制体系,那是香农的功劳。(1)运算器和控制器大家都知道现在这俩东西合起来被称为了CPU。因为他
计算机的时间魔法(定时器) 5月组内月度分享的时候,大家讨论到了在Java里时间轮是靠什么驱动运作的。这引发了我对时间驱动力的探索。这个世界本质上就是时间驱动的,这是自然的真实反映。试想如果时间停滞,所有的动作也都会暂停。计算机系统本质上也是时间驱动的。计算机系统的时间概念是由电子振荡器的反复振荡产生的。我们从计算机最底层的硬件讲起,再到操作系统,再到Java,一步一步探究时间驱动力的奥秘。由于篇幅太长…………所以我们分几篇来讲。链接链接链接链接链接...
基于SDCC的工程化实践 基于SDCC的工程化实践一、上位机环境MacBook Pro系统:macOS Big Sur编译器:SDCC烧录器:stcgal二、总结先说结论:由于sdcc对中文的支持不好,我尝试了各种办法均无解,不想浪费太多时间在趟坑上面,所以暂时放弃了探索。转而使用Windows的PC机作为开发机,重点是使用Keil C编译器。(为什么需要用到中文?因为要向屏幕上输出中文…… 有些液晶屏驱动还不带中文字库,需要自己维护字库,就需要维护charcode和代码对应关系,如果都是用unicode编码来替代
常见开源规则引擎对比分析 0x00 目的背景电商会员服务的等级、积分、权益等模块中,都使用了大量的规则判断。范式基本上是 达成xxx条件,执行xxx行为 。这很符合规则引擎那一套,因此下面选取了几个业界常见的规则引擎进行分析。我们分别都从使用角度、原理角度两个方面进行分析。0x01 easy-rules项目地址:https://github.com/j-easy/easy-rules1. 规则模型![image.png](https://img-blog.csdnimg.cn/img_convert/b5724b0dcd
0x400_flag 立一个多写blog的flag 刚刚登陆上来是为了查点资料。发现今天发博文还有勋章奖励,要不就顺手水一篇文章好了。最近在研究Docker的原理,在这里立一个flag好了,日后还是要多写博文,提升一下技术深度。...