摘要: 概述 JMM规范指出,每一个线程都有自己的工作内存(working memory),当变量的值发生变化时,先更新自己的工作内存,然后再拷贝到主存(main memory),这样其他线程就能读取到更新后的值了。 注意:工作内存和主存是JMM规范里抽象的概念,在JVM的内存模型下,可以将CPU缓存对应作 阅读全文
posted @ 2020-04-12 18:54 june.js 阅读(449) 评论(2) 推荐(1) 编辑
摘要: 了解常见的计算机延迟,有助于架构设计和问题排查。比如互斥锁延迟,硬盘存取延迟,网络延迟等等。通过了解不同设备或环境的延迟的数量级,就很容易理解redis为什么比mysql快很多,异地多活架构有多难。 本文从微观的CPU时钟延迟开始,到宏观的异地双机房网络延迟,描述各种延迟的数量级。 延迟的定义 如下 阅读全文
posted @ 2021-04-16 22:59 june.js 阅读(426) 评论(0) 推荐(0) 编辑
摘要: EA(enterprice architect)是一款优秀的建模工具,可以通过MySQL进行多人在同一个项目上协作。设置EA多人协作本身不太麻烦,基本步骤: 1. MySQL建库(需要建库脚本) 2. 设置ODBC(32位) 3. 将项目传输到到MySQL(EA菜单,Configure Transf 阅读全文
posted @ 2020-04-13 22:24 june.js 阅读(526) 评论(0) 推荐(0) 编辑
摘要: 在sonarqube系统中,可以通过webhook实现代码分析结果的通知。比如我们希望将分析结果发送到钉钉群,那么可以新建一个web应用,编写发送消息到钉钉群的逻辑,然后提供一个http接口,设置到sonarqube的webhook中。这样,当sonarqube分析完代码,会调用设置的http接口。 阅读全文
posted @ 2020-04-13 16:33 june.js 阅读(2209) 评论(0) 推荐(0) 编辑
摘要: docker镜像默认是从dockerhub中下载,速度比较慢。可以通过阿里的镜像进行加速,方法如下: 阿里镜像加速器 登陆阿里云账号,进入如下页面:https://cr.console.aliyun.com/cn hangzhou/instances/mirrors 设置加速器地址 第一步的页面中, 阅读全文
posted @ 2020-04-13 16:31 june.js 阅读(1364) 评论(0) 推荐(0) 编辑
摘要: 问题描述 查看线上log时,发现了一些npe异常,但是没有堆栈信息。 没有堆栈信息,也就意味着没法定位问题代码,第一反应是查看记日志的代码(用的logback),确认没有问题后,开始google和stackOverflow。 结论 一般情况下,当异常发生时,JVM会回溯调用栈,构建异常对象(包含完整 阅读全文
posted @ 2020-04-13 12:06 june.js 阅读(3341) 评论(0) 推荐(2) 编辑
摘要: fo dicom 全称:Fellow Oak DICOM 是一个处理 DICOM 协议及图像相关的类库,基于 .Net 平台。 问题 通过 nuget 将 fo dicom 添加到项目,编译后 Dicom.Native.dll 没有自动拷贝到 编译输出目录。 Dicom.Native.dll 跟接收 阅读全文
posted @ 2020-04-12 19:31 june.js 阅读(812) 评论(0) 推荐(0) 编辑
摘要: 最近在用 .net 写一个小工具,依赖了部分第三方库,如下截图为 Release 目录,其中可执行程序为 mssql tool console.exe,在这么多文件中找到此执行程序需要有点麻烦,如果能把绝大多数的DLL文件合并为一个DLL文件,则找到exe可执行程序就很方便了。 经过调研,找到了IL 阅读全文
posted @ 2020-04-12 19:29 june.js 阅读(351) 评论(0) 推荐(0) 编辑
摘要: 上下文 最近的一个项目,使用的数据库是 MS SQLServer,每次要发布新版本时,需要把开发环境的库(我们称为template库)生成脚本(表结构+基础数据),此脚本会被放到发布包中,以便在产生环境利用这个脚本生成数据库。 可以通过SQLServer的管理工具(Microsoft SQL Ser 阅读全文
posted @ 2020-04-12 19:14 june.js 阅读(1047) 评论(0) 推荐(0) 编辑
摘要: 上下文 作为一个开发或测试人员,当软件中有打印功能,我们为了节省纸张,保护大自然,经常会使用虚拟打印机进行测试,比如 Win10 系统中的 Microsoft Print to PDF。 但是 ,系统自带的虚拟打印机需要 烦人的交互操作 ,比如选择 PDF 文档保存的位置和文件名,这种 重复的工作 阅读全文
posted @ 2020-04-12 19:12 june.js 阅读(1633) 评论(2) 推荐(0) 编辑
摘要: 0x00 axel wget是linux平台上最常用的网络下载工具了,但是其单线程下载速度较慢。本文推荐一个多线程下载的工具 axel。对于大文件来说,速度提升明显。 使用起来非常方便,将 wget xxx,改为axel n 20 xxx 即可,其中20是下载线程数量。 该工具还 支持断点续传 ,当 阅读全文
posted @ 2020-04-12 19:06 june.js 阅读(398) 评论(0) 推荐(0) 编辑