HiSEN

Personal Technology Blog


  • 归档

  • 分类

  • 标签

  • 书单

  • 关于

  • 搜索
close
HiSEN

二进制的应用

发表于 2021-07-26 | 分类于 java

一、背景

之前京东组里有同事使用二进制优化支付密码打标性能(大促 QPS 数百万),节省内存资源。
随说:存二进制报文小,传输快,反序列化快(之前存 JSON 对象),节省缓存。

目前公司遇到个套餐打标,也通过二进制实现简单高效得解决掉了。
随说:目前倒不是要求性能,只是这么设计扩展性好,操作简单。

知识点:二进制、与运算

二、设计

打标,无非就是识别某个东西是不是包含某些属性。
那么有什么好的办法能做到通用与高效?
如果固定映射,扩展性不好,查询逻辑费劲,存储成本偏高。

目前相对较好的方案是通过二进制位来做标记,再结合与运算,快速找出数据。
随说:Java MySQL 均支持与运算

套餐VIP1VIP2VIP3标记值
A1117
B1106
C1004

如上表所示,相应套餐的购买资格标记。

阅读全文 »

HiSEN

关于互联网医疗

发表于 2021-07-18 | 分类于 read

零、背景

由于近期换工作,停下了技术书籍,去了解行业
《移动健康和智慧医疗》算是互联网医疗的科普资料
前面部分的内容已经后面部分国际案例,了解之用足够
里面提到的『量化自我』,如果把世界量化分析,岂不是美哉?
随说:前提是大家相信分析出来的结论,以及按建议行事。

一、微博读后感

《移动健康和智慧医疗》0711~0717
过去人口红利式的告诉发展逐渐降速
老龄化突显使疾病预防和控制更重要

医疗信息化建设提升医疗系统效率
医疗数据收集与分析改进医疗方案
多维度健康数据分析建议促进健康

减少医疗信息不对称
降低患者再次入院率
早运动早发现早治疗
有效地减少医疗支出

互联网医疗典型方向:

  1. 促进健康
  2. 慢性病管理
  3. 诊断治疗(非急症性疾病)
  4. 院外康复指导和干预

二、摘抄(医疗相关)

阅读全文 »
HiSEN

读后感:《凤凰架构》

发表于 2021-06-13 | 分类于 read

一、简短感受

简单介绍,《凤凰架构》作者,周志明。
他最出名的书籍非《深入理解Java虚拟机》莫属了
书中了解到他对技术的态度,以及持续奋战一线值得学习,《程序员之路》值得一看(底部有链接)。

阅读时间:0531~0612
构建凤凰磐涅般的系统
介绍了一整套技术体系
穿插着技术的来龙去脉
着实是一部不错的书籍
架构的前提是足够了解
综合实际情况做出权衡
给人感觉不太像架构书
总的来说还是值得一看

用输出倒逼输入
这就是写博客等其它输出手段的作用

目前的软件没有烟囱式的,都是金字塔类型,所以底层基础要牢固!

二、部分摘抄

阅读全文 »
HiSEN

关于学习英语

发表于 2021-06-05 | 分类于 成长

一、背景

作为一个软件开发工程师,日常很多机会和英文打交道。
特别是上一份工作,做全球支付项目,需要用到英文与国际友人沟通。
奈何自己的英语水平捉襟见肘,于是经常会有意地去收集相关的文章。

今天心血来潮,再次看了一下之前收藏的相关文章,感觉收获不少。
于是就想写一篇文章归集一下相关的内容,方便日后翻阅,顺便分享给有需要的人。

二、资源

复旦大学中文系教授严峰

  • 严老师的英语学习硬核秘诀
    学习英语最重要的还是兴趣,推荐听广播,背课文,背单词。

  • 学外语有什么用
    关于学习外语的一些用途,方便大家思考自己学习的目的。

    阅读全文 »
HiSEN

Redis Cluster slot 分布不均匀问题排查

发表于 2021-05-18 | 分类于 database

零、背景

在压测过程中发现有部分 redis cluster 节点内存占用比其它节点高(来自监控)

内存倾斜的隐患

  1. 更早达到容量瓶颈,触发淘汰策略
  2. 承担更多的负载( 读 / 写 ),导致节点压力增大,可能触发宕机。

一、问题

redis cluster slot 分配不均匀
redis cluster 集群内存分配算法的缺陷
问题算法:单节点内存 = 集群总内存 / 节点数

合理算法:单节点内存 = (集群总内容 / slot 数量) * 当前节点 slot 数量

二、排查

2.1 key 分布问题?

阅读全文 »
HiSEN

JMH使用案例-日期格式化工具性能对比

发表于 2021-05-11 | 分类于 java

一、背景

最近在看代码,发现一个 Date 格式化为 String 的方法。

1
2
3
public String dateFormatString() {
return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS").format(date);
}

看到这个方法想到

  • 每次都 new 一个 format 会快么(非线程安全,得每次都 new)?
  • SimpleDateFormat 格式化快么?
  • “yyyy-MM-dd HH:mm:ss.SSS” 改成静态常量会不会快点?

带着以上三个疑问,就想着做个对比测试。
恰巧最近在 perfma 社区看 jvm 相关内容时,刷到了『性能调优必备利器之 JMH』

优点:不用自己写相关统计代码,而且统计方式有多种

二、结论

性能从低到高

  • java.text.SimpleDateFormat
  • org.apache.commons.lang.time.DateFormatUtils
  • org.joda.time.DateTime
    阅读全文 »
HiSEN

JVM系列-MetaSpace(元空间)

发表于 2021-04-30 | 分类于 java

一、结论

JDK8 因未指定 MetaSpace 大小,程序启动过程中元空间不够用,触发 full gc。

详细如下:
JDK8 因未指定 MetaSpace 大小,默认初始大小约 21M
程序启动,元空间大小占用稳定在 90M
因为超过了默认元空间大小,导致元空间扩容(每次扩容会 full gc)
从 GC 日志来看,每次元空间扩容都是增加 20M 左右,所以程序启动时 full gc 4 次

二、问题

应用启动时出现 full gc;

gc日志重点:GC (Metadata GC Threshold) [PSYoungGen: 354024K->15340K(1376256K)

三、排查过程

阅读全文 »
HiSEN

关于中断

发表于 2021-03-06 | 分类于 计算机科学

一、中断的解释

网络

中断(Interrupt)是指 处理器接收到来自硬件或软件的信号,提示发生了某个事件,应该被注意,这种情况就称为中断。

软中断 (form 《UNIX 操作系统设计》)

内核在收到软中断信号的进程上下文中处理软中断信号,因此进程必须运行以便处理信号。
处理软中断信号的方式:

  1. 进程忽略软中断信号;
  2. 进程收到软中断信号后退出;
  3. 进程收到信号后执行一个特殊的(用户)函数;

二、Java 的中断

Java API 中线程相关的方法主要有三个:

阅读全文 »

HiSEN

计算机科学的自我修炼

发表于 2021-02-19 | 分类于 成长 , 计算机科学

零、背景

在近两年高并发系统 DevOps 的过程中,
遇到了很多底层的问你题,eg: 网络、硬件、虚拟机等,
有些现象虽然知其然,但是不知其所以然,书到用时方恨少!
抱着深入学习的心态这两年看了一些相关书籍:

《计算机网络:自顶向下方法》
《操作系统精髓与设计原理》
《Java性能优化权威指南》
《Redis运维与开发》
《性能之巅》

收获甚大 所以想继续深入学习
误打误撞,看到了之前在 GitHub 关注的一个『自学计算机科学』仓库,很赞同下面这个观点

软件工程师分为两种:

  1. 一种充分理解了计算机科学,从而有能力应对充满挑战的创造性工作;
  2. 另一种仅仅凭着对一些高级工具的熟悉而勉强应付。

这两种人都自称软件工程师,都能在职业生涯早期挣到差不多的工资。
然而,随着时间流逝,第一种工程师不断成长,所做的事情将会越来越有意义且更为高薪,
不论是有价值的商业工作、突破性的开源项目、技术上的领导力或者高质量的个人贡献。

一、资源

1.1 摘要

阅读全文 »
HiSEN

春节期间的收获 | 记第一次在外过年

发表于 2021-02-18 | 分类于 随说

零、摘要

响应国家就地过年的号召,今年第一次在外过年。
弹指一挥间,12 天的假期已经成为过去。
期间还是有不少的收获,最主要的是看了 4 本书。
以及在微博上面看到了不少的人和事,甚是触动。

找到自己的兴趣,追求精进,坚持做对的事情。

一、阅读

1.1 《 UML 和模式应用》0113~0207

这本书是 leader 推荐给大家的
基于职责去做设计的理念确实很棒,值得观摩实践。

阅读全文 »

1234…26
hisenyuan

hisenyuan

Java R & D

257 日志
29 分类
108 标签
GitHub Weibo
Links
  • 科技爱好者周刊
  • 美团技术团队
  • duanple(老师木)
  • 当然我在扯淡(王垠)
  • 段永平的博客
  • 梦殇国际
© 2016 - 2023 hisenyuan
由 Hexo 强力驱动
您是第  个访问者    |   
主题 - NexT.Mist