阅读本文大概需要 2.3 分钟。 阅读本文大概需要 2.3 分钟。 出处:割肉机 cnblogs.com/williamjie/p/11164572.html Java 堆空间 GC 开销超过限制 请求的数组大小超过虚拟机限制 Perm gen 空间 Metaspace 无法新建本机线程 杀死进程或 ...
分类:
其他好文 时间:
2019-08-22 11:16:17
阅读次数:
83
https://my.oschina.net/zidanzzg/blog/812887 https://www.cnblogs.com/dylancao/p/9951838.html C语言关键字,编译器优化时使用,不要对编译器撒谎,如果把一个指针定义成Restrict , 编译器会相信你,并对程序 ...
分类:
编程语言 时间:
2019-08-11 22:53:28
阅读次数:
140
final是一个可以对类、方法、变量修饰的修饰词。它最直接的意思就是,被它修饰的元素,不可以再被改变了,已经是最终形态了 1.当它用于修饰类的时候 表示这个类不可以被继承了。这个类不可以有子类,已经是最终形态了。 final类内部的所有的方法都隐式的被final修饰(反正已经不可能被重写了) 内部的 ...
分类:
编程语言 时间:
2019-08-10 17:43:02
阅读次数:
122
作用: volatile关键词影响编译器编译的结果,用volatile声明的变量表示该变量随时可能发生变化,与该变量有关的运算,不要进行编译优化,以免出错。(使用volatile关键字修饰的变量,告诉编译器每次读取数据从内存中读取,而不是从编译器优化后的缓存中读取变量) 编译器优化原理: ...
分类:
编程语言 时间:
2019-07-21 01:20:27
阅读次数:
97
构建库函数雏形 修改寄存器地址封装 代码清单 8 1 封装寄存器列表 c //volatile 表示易变的变量,防止编译器优化 define __IO volatile typedef unsigned int uint32_t; typedef unsigned short uint16_t; / ...
分类:
其他好文 时间:
2019-07-18 20:00:19
阅读次数:
137
不管硬件寄存器和内存之间的强相似性, 存取 I/O 寄存器的程序员必须小心避免被 CPU(或者编译器)优化所戏弄, 它可能修改希望的 I/O 行为. I/O 寄存器和 RAM 的主要不同是 I/O 操作有边际效果, 而内存操作没有: 一个内存写的 唯一效果是存储一个值到一个位置, 并且一个内存读返回 ...
分类:
其他好文 时间:
2019-07-06 11:42:55
阅读次数:
117
背景 我们知道导致cpu缓存导致了可见性问题,编译器优化带来了有序性问题。那么如果我们禁用了cpu缓存与编译器优化,就能够解决问题,但是性能就无法提升了。所以一个合理的方案,就是按照一定规范来禁用缓存和编译器优化,即在某些情况下禁用缓存与编译器优化。Java内存模型就是这样的一个规范,用来解决可见性 ...
分类:
编程语言 时间:
2019-06-09 00:27:24
阅读次数:
142
偶然间遇到后,滤除了其他无关的代码和模块,在开发板上试了试,是一样的问题 用正点原子的F4开发板和他们的定时器中断例程。 将定时器中断改为20ms一次 截图就是全部代码了。 中断里给TimeFlag++, 在主循环里判断标志是否来临,如果来临LED0翻转,如果超时则打印超时信息。 用示波器看到的波形 ...
分类:
其他好文 时间:
2019-05-15 14:39:15
阅读次数:
181
概述:知识点汇总jvm的知识点汇总共6个大方向:内存模型、类加载机制、GC垃圾回收是比较重点的内容。性能调优部分偏重实际应用,重点突出实践能力。编译器优化和执行模式部分偏重理论基础,主要掌握知识点。各个部分的内容如下:1>内存模型部分:程序计数器、方法区、堆、栈、本地方法栈的作用,保存哪些数据;2>类加载部分:双亲委派的加载机制以及常用类加载器分别加载哪种类型的类;*3>GC部分:*分代回收的思想
分类:
其他好文 时间:
2019-04-27 22:45:00
阅读次数:
232
1. 值编号 我们知道C1内部使用的是一种图结构的HIR,它由基本块构成一个图,然后每个基本块里面是SSA形式的指令,关于这点如可以参考 "[Inside HotSpot] C1编译器工作流程及中间表示" 。值编号(Value numbering)是指 为每个计算得到的值分配一个独一无二的编号 ,然 ...
分类:
其他好文 时间:
2019-04-24 19:35:10
阅读次数:
157