• 指令重排的原因以及可能造成的问题
    为何要指令重排? 现在的CPU一般采用流水线来执行指令。一个指令的执行被分成:取指、译码、访存、执行、写回、等若干个阶段。然后,多条指令可以同时存在于流水线中,同时被执行。 指令流水线并不是串行的,并不会因为一个耗时很长的指令在“执行”阶段呆很长时间,而导致后续的指令都卡在“执行”之前的阶段上。 相反,流水线是并行的,多个指令可以同时处于同一个阶段,只要CPU内部相应的处理部件未被占满即可。比如说CPU有一个加法器和一个除法器,那么一条加法指令和一条除法指令就可能同时处于“执行”阶段, 而两条加法指令在“执行”阶段就只能串行工作。 相比于串行+阻塞的方式,流水线像这样并行的工作,效率是非常高的...
    KLGG2021-10-27
     3
     1
     1
  • spring boot集成 jaeger实现链路管理
    在微服务项目中,有很大一块就是服务治理。那么服务调用链路的治理就是其中一项。为了方便切换链路追踪的实现,我们主要选择实现opentracing的方案。spring cloud提供了sleuth组件,但是我们更倾向用jaeger来实现。 jaeger架构如下 这里我们以spring boot 集成jeager 环境: spring boot:2.5.3 opentracing-spring-jaeger-cloud-starter:3.3.1 dependencies <dependencies> <dependency> <groupId>org.projectlomb...
    落雁沙2021-10-27
     11
     
     
  • Spring MVC处理流程分析
    思考 如果现在我们有这么一个 SimpleController.java @RestController public class SimpleController { @GetMapping("request") @ModelAttribute("attr") public Map<String, Object> method(Integer age, @Valid User user, BindingResult bindingResult) { Map<String, Object> map = new HashMap<>(); ...
    Rick2021-10-26
     14
     1
     
  • 五年运维心路历程
    五年运维心路历程 五年运维,依旧运维小白一枚,时常感叹工作之艰辛! 总结下来就是啥都会一点,啥也不精通。 工作经历 网络工程师到系统工程师 2014年参加华为数通(R&S)培训,第一份实习工作从事 某 SAAS 平台的IDC 网络管理工作,结果次年公司开始全面公有云就取消了网络工程师岗位。随着公司部门规划,就参与 Linux 系统内训及转岗。 系统工程师到开发运维 随后两年一直从事 Linux 系统运维,在当时(2016-2017)还不算太 LOW。日常工作也就是基础集群的部署维护、、业务上线发布、Zabbix 监控等运维保障工作。随后在 2018 年,公司要求支持多云架构,协助开发部门实现多...
    凌霄2021-10-25
     21
     1
     1
  • Kubernetes 之 Controller 编写
    翻译自[Writing Controllers](https://github.com/kubernetes/community/blob/8cafef897a22026d42f5e5bb3f104febe7e29830/contributors/devel/controllers.md Writing Controller Kubernetes Controller 是个“常驻调谐进程”。它除了会“监视”对象的期望状态外,也会“监视”对象的运行状态。会通过发送“指令”尝试着将对象的运行状态更加趋近于期望状态。 如下是个简单的 loop 循环: for { desired := getDe...
    Kirago2021-10-18
     72
     1
     1
  • Vue自定义权限v-action
    import Vue from 'vue' import store from '@/store' /** * Action 权限指令 * 指令用法: * - 在需要控制 action 级别权限的组件上使用 v-action:[method] , 如下: * <i-button v-action:add >添加用户</a-button> 用户有add权限即可操作 * <a-button v-action:edit|delete>删除用户</a-button> 用户有edit或delete权限即可操作 * <a v-action:edit&delet...
    zhyim2021-10-18
     56
     
     
  • 主频、核心、线程、架构
    我们都说CPU相当于人类的大脑,在日常生活中,人脑是术业有专攻,有人天生适合搞艺术,有人天生适合搞科学。CPU作为计算机的大脑,其实也是这样的。下面就带大家了解一下CPU知识以及怎么选择合适的CPU。 cpu CPU知识科普 CPU有几个重要的参数:主频、核心、线程、缓存、架构。那么他们到底是什么意思,又有啥联系呢?以下知识通俗易懂,看完秒懂。 一、主频 我们常在CPU的参数里看到 3.0GHz、3.7GHz等就是CPU的主频,严谨的说他是CPU内核的时钟频率,但是我们也可以直接理解为运算速度。 举个有趣的例子:CPU的主频相当于我们胳膊的肌肉(力量),主频越高,力量越大。 主频 二、核心 我...
    KLGG2021-10-18
     63
     
     
  • java多线程并发编程与CPU时钟分配小议
    我们先来研究下JAVA的多线程的并发编程和CPU时钟振荡的关系吧 老规矩,先科普 我们的操作系统在DOS以前都是单任务的 什么是单任务呢?就是一次只能做一件事 你复制文件的时候,就不能重命名了 那么现在的操作系统,我一边在这边写BLOG,一边听歌,一边开着QQ,一边…………………… 显然,现在的操作系统都是多任务的操作系统 操作系统对多任务的支持是怎么样的呢? 每打开一个程序,就启动一个进程,为其分配相应空间(主要是运行程序的内存空间) 这其实就支持并发运行了 CPU有个时钟频率,表示每秒能执行CPU指令的次数, 在每个时钟周期内,CPU实际上只能执行一条(或者多条指令)。 操作系统对进程线程...
    KLGG2021-10-18
     69
     
     1
  • SpringMVC 对multipart/related (RFC2387) 的Response的支持
    springmvc中只支持接受multipart形式的数据,却无法返回这个类型的数据,故添加对response的支持 步骤如下。 1. 定义用于返回的对象 @Data public class MultipartRelatedOutput extends MultipartOutput { private String startInfo; public OutputPart getRootPart() { return getParts().get(0); } public OutputPart addPart(Object entity,...
    小小鼠标垫2021-10-15
     74
     1
     1
  • Android扫码优化方案
    目前Android主流扫码方案有2种:使用ZXing和ZBar 但是对于个人开发者而言,对于扫码效率的提升,涉及到算法和图像识别相关的技术,的确无法做更大的提升.只能依赖第三方开源库的支持. 长期以来ZXing扫码识别率低的问题,一直困扰着中小企业的Android开发人员. 微信、支付宝这种大厂开发的扫码库,一般只提供内部使用.能对外的都是需要收费的,例如腾讯云的扫码和阿里云的扫码库都是付费产品. 眼下有2个比较优秀的解决方案 一、使用华为开发者平台提供的扫码服务(最佳方案,没有之一) 具体对接可参考官方文档进行: 华为统一扫码服务 二、使用MLKit,机器学习技术的扫码方案 开源项目地址: ...
    dmd19902021-10-12
     40