写这种博客总感觉很低级
但是不得不承认自己从来没有认真的了解过打日志这件事
这里开个头,先从常见的日志配置文件开始,后续再深入了解
“I wish i had” vs “I’m glad i did”
人生会不会留下遗憾,在 20 年之后的这两句话中就能看出。
希望 20 年后的自己,能够很自豪的说:I’m glad i did.
一、self4j
这是一个只定义了标准的日志组件
二、logback
常见配置:logback.xml
时间是公平的,对每个人都一样,不同之处在于每个人单位时间的产出值会有差异。
一直在寻找适合于自己的学习方法以提高时间的利用效率,以便不影响诗和远方==
奈何目前也没有太多满意的答案,或许生命的意义就是在于探索未知而又刺激的世界。
分享一些文字,提到了一些好的学习方法,抛砖引玉,共勉。
《贫穷的本质》告诉我们,贫穷的本质是认知。其实很多时候真的是认知,方法论决定了一个人可以走多远。
《刻意练习》原地踏步的练习是没意义的,大众眼里一万小时定律基本上是错误的,需要的是有进步练习;
《学习之道》十个不错的方法:运用回想、知识组块、简化类比、方法交替、间隔重复、注意休息、心理对照、自我测试、保持专注、困难先行;
《如何阅读一本书》里面有提到主题阅读,不同的人对同一主题会有不同的看法,可以对比吸收;
《程序员的职业素养》有提到卡塔练习,提高我们的肌肉反应,让写代码像聊天打字一遍的顺畅;
早些天看到一篇不错的帖子
对我感触最深的就是:4
标题:如果高效学习有什么秘诀的话,那就都在这里了:)
2015 年刚毕业的我懵懵懂懂看书都想睡觉
很开心来到北京遇到了许多美好的人和事
受到环境的影响一路走来成长加速收获颇丰
从 2016 开始慢慢喜欢上了阅读
从开始看书就想睡觉到现在一个6层书架都放不下的纸质书
从开始的『kindle voyage』到现在的『kindle oasis』第三代
从开始的只是在北京地铁5号线看下电子书到现在有点时间就看
慢慢地养成了阅读的习惯,生活也没有那么无聊,工作慢慢步入正轨
非技术书籍喜欢用 kindle 看,技术书还是纸书比较合适翻阅
简单统计
2020 51本
2019 71本
2018 38本
2017 48本(2017以及之前)
Q:看书想睡觉怎么办?
A:先找有兴趣/好奇的主题
题目要求:
Determine if a 9x9 Sudoku board is valid. Only the filled cells need to be validated according to the following rules:
每一行都不能重复1-9
每一列都不能重复1-9
每个33的小格子(99分为9个3*3)不能重复
开始解题的时候可以一个大循环解决一个小问题,后续再把循环合并即可;
开始的时候我是写了三个双重for循环:
当发现每一步都可行之后,尝试着合并,以减少时间复杂度;
1 | public static boolean isValidSudoku(char[][] board) { |
可运行demo
做这件事的目的是为了了解一条数据库记录从创建到使用的一个情况;
查询分布时间计算方式采用Top Percentile方式,就是按一定排序的数据,前面xx%的最大值是多少;
TP999 1ms 代表某接口99.9%的响应都在1ms之内;
最终的目的也就是为了知道数据多久之后可以打入冷宫,使用廉价存储;
冷热数据分级处理有利于在性能和成本上达到一定的平衡;
如把内存缓存时间设置为tp90所处的时间,那么90%的数据都能快速返回,其它少量数据回源处理;
关键字
Java格式化输出
Java8
stream
parallelStream
分组
排序
DoubleSummaryStatistics数据分析
TP999
日志源数据预览
1 | 19-10-24.14:47:12.721 [THREAD-22000-18-T-17] INFO FacadeImpl - response yw:jiaoyi, orderId:123456, time:2019-10-24T14:46:44 |
yw | count | min(ms) | max(ms) | tp50(ms) | tp90(ms) | tp99(ms) | tp999(ms) |
---|---|---|---|---|---|---|---|
hisen | 1000 | 1 | 10000 | 20 | 60 | 90 | 130 |
hisen-1 | 200 | 2 | 16000 | 16 | 50 | 70 | 110 |
ps 输出是格式化的数据,并不是表格,可以通过:
world->粘贴输出文本->插入->表格->文本转换成表格->空格
即可完成文字到表格转换
这种过程可能比较low,但是也需要时间去处理,过程中还得配合linux命令等整合文本;
完整:github-CallerAnalyze.Java
摘要如下:
一些简单的黑产攻防介绍
很不错的一本书,作为程序员都值得去看一看,170+页周末一天可以看完, 还包括做笔记
医学专业已经建立起一套严密的辅导体系
软件行业建立一种包含学徒期、实习期、和长期指引的机制已是迫在眉睫
有人指导大多数人都可以快速的成长,节省很多走弯路的时间
当然,事在人为,只是说掌握了书中的那些要领,成为专业人员的几率更高,做更好的自己
如果从小学开始就一直有人引路并且自己也愿意跟着走的话,应该会很棒,现在也不晚,抓住时间就好
主要内容:
专业主义
学会说“不”,学会说“是”
编码的正确姿势
TDD
卡塔练习很重要,肌肉反应
验收测试(各方都一致同一的检验方式)
测试策略,自动化测试是趋势
时间管理,番茄工作法,注意力点数
预估的概念以及方法
压力,避免与面对
协作,学会与人交流
团队与项目,有凝聚力的团队战斗力强
软件开发如医生一样培训更佳
合适的工具事半功倍
业务当中多处用到线程池进行异步处理;
为了得知线程池设置是否合理,故需要增加线程池监控;
常见的实现方式:
本文使用1的方式实现,主要是方便进行配置,可以托管多个任务;
1 | taskName:pool1-monitor. taskCount:820, completedTaskCount:820, largestPoolSize:30, poolSize:30, activeCount:0, corePoolSize:30, maximumPoolSize:50, queueSize:0 |
代码如下: