pmd

Linux内存初始化(一)

烂漫一生 提交于 2020-04-06 01:49:08
一、前言 一直以来,我都非常着迷于两种电影拍摄手法:一种是慢镜头,将每一个细节全方位的展现给观众。另外一种就是快镜头,多半是反应一个时代的变迁,从非常长的时间段中,截取几个典型的snapshot,合成在十几秒的镜头中,可以让观众很快的了解一个事物的发展脉络。对应到技术层面,慢镜头有点类似情景分析,把每一行代码都详细的进行解析,了解技术的细节。快镜头类似数据流分析,勾勒一个过程中,数据结构的演化。本文采用了快镜头的方法,对内存初始化部分进行描述,不纠缠于具体函数的代码实现,只是希望能给大家一个概略性的印象(有兴趣的同学可以自行研究代码)。BTW,在本文中我们都是基于ARM64来描述体系结构相关的内容。 二、启动之前 在详细描述linux kernel对内存的初始化过程之前,我们必须首先了解kernel在执行第一条语句之前所面临的处境。这时候的内存状况可以参考下图: bootloader有自己的方法来了解系统中memory的布局,然后,它会将绿色的kernel image和蓝色dtb image copy到了指定的内存位置上。kernel image最好是位于main memory起始地址偏移TEXT_OFFSET的位置,当然,TEXT_OFFSET需要和kernel协商好。kernel image是否一定位于起始的main memory(memory address最低)呢?也不一定

sonarqube配置全指南,集成阿里巴巴p3c规范

家住魔仙堡 提交于 2020-03-23 19:21:59
3 月,跳不动了?>>> 环境准备 内置数据库 Sonar安装成功后,默认内置H2数据库,用于记录单次的扫描结果,对同一个project重复扫码,会覆盖之前的扫描记录,所以H2 数据库只应用于测试,不可以用于生产环境,那如果你是想玩玩,不想长期扫描你的项目,可以不必配置数据库 自定义数据库: Oracle SQL Server(只支持SQL Server 2014 以及 SQL Server2016) PostgreSQL MYSQL 版本限制: 8.0>MYSQL>=5.6 (注官方说明,从Sonar7.9版本,不再支持Mysql),以下链接 End of Life of MySQL Support : SonarQube 7.9 and future versions do not support MySQL. Please migrate to a supported database. Get more details at https://community.sonarsource.com/t/end-of-life-of-mysql-support https://jira.sonarsource.com/browse/SONAR-11963 安装步骤 1.安装sonarqube: 安装的是windows 7.4 community社区版 https:/

深入理解Java虚拟机_10_早期(编译期)优化

戏子无情 提交于 2020-03-10 17:04:54
10.1 概述 Java 语言的编译期是一段“不确定”的操作过程,因为它可能是指一个前端编译器(其实应该叫做“编译器的前端”)把 *.java 文件编译成 *.class 文件的过程;也可能是指虚拟机的后端运行期编译器(JIT 即时编译器,just in time compiler)把字节码转变为机器码的操作过程;还可能指使用静态提前编译器(AOT 编译器,Ahead of time compiler)把 *.java 文件编译成机器代码的过程。下面列举三个有代表性的编译器: 前端编译器:Sun 的 javac、eclipse JDT 中的增量式编译器(ECJ)。 JIT 编译器:Hotspot VM 的 C1、C2 编译器。 AOT 编译器:GNU Compiler for the Java(GCJ)、Excelsior JET。 本章中的“编译期”和“编译器”都局限于第一类编译过程。Java 中即时编译器在运行期的优化过程对程序运行来说更重要,而前端编译器在编译期的优化对程序编码来说关系更密切。 10.2 Javac 编译器 我们开始分析下 javac 编译器的源码。 10.2.1 Javac 的源码与调试 我们可建立一个名为“Compiler_javac” 的 Java 工程,然后把 JDK_SRC_HOME/langtools/src/share/classes/com

Metasequoia 4 for Mac(3D水杉建模软件) v4.7.3特别版

心不动则不痛 提交于 2020-02-28 05:59:33
Metasequoia 4 for Mac激活版 人称水杉建模,是基于多边形建模创建使用cad和3DCG,视效率和数据的可移植,可以使用范围很广,从爱好到业务,支持3D电脑绘图,3D印刷,游戏开发等!现 Mac下载Macdown 提供水杉建模破解版下载,附注册机和详细破解教程,经小编实测,绝对能使用! Metasequoia 4 for Mac破解版下载 https://www.macdown.com/mac/1692.html Metasequoia for Mac激活软件介绍 目前,3D建模应用程序的需求量很大,因为平面设计师,游戏开发人员和动画师需要专门的工具来帮助他们创建新的更好的内容,使用范围很广,从爱好到业务,如游戏制作的三性维形状数据,重视效率和数据的可移植等等,准确的说它是一款3D模型建模软件。 Metasequoia4 Mac功能介绍 强大的建模功能 水杉具有基本的多边形编辑功能。它还具有协助更精细处理的功能。 1、衔铁 通过[Armature],您可以沿中心线创建对象形状。 您可以通过仅指定中心线和线宽来创建对象。此功能将减少创建对象的时间。 您可以通过建模功能更详细地编辑生成的对象。 2、骨和变形 设置[Bone],对象可以链接到骨骼的变形。 并且[Morph]是滑动顶点的函数。您可以创建面部表情等。 骨骼和变形设置可以导出为相应的文件格式FBX或PMD。 3

Using character instead of String for single-character values in StringBuffer append

无人久伴 提交于 2020-01-24 02:18:07
问题 I was going through the PMD rule AppendCharacterWithChar . It says Avoid concatenating characters as strings in StringBuffer.append. StringBuffer sb = new StringBuffer(); // Avoid this sb.append("a"); // use instead something like this StringBuffer sb = new StringBuffer(); sb.append('a'); Do I really need this PMD rule ? Is there much performance difference between the following two piece of code? String text = new StringBuffer().append("some string").append('c').toString(); String text = new

PMD coulnd't find ruleset

眉间皱痕 提交于 2020-01-23 03:09:04
问题 I'm on creating a maven based java project, which contains the PMD maven plugin. I use my own rule set XML and it works like a charm, except two rule sets: the emptycode and the unnecessary : when I run the build, maven says: " can't find resource ". The role definitions look like: <role ref="rulesets/emptycode" /> and <role ref="rulesets/unnecessary" /> In every other cases, this kind of definition works. What I found out is that: there is a rule set with the name " unnecessary " under

分布式系统 in 2010s :硬件的进化

夙愿已清 提交于 2020-01-09 10:24:31
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 分布式技术的发展,深刻地改变了我们编程的模式和思考软件的模式。值 2019 岁末,PingCAP 联合 InfoQ 共同策划出品“分布式系统前沿技术 ”专题, 邀请众多技术团队共同参与,一起探索这个古老领域的新生机。本文出自我司 CTO 黄东旭,为「分布式系统 in 2010s」 系列第三篇。 上篇 我们聊了软件构建方式和演化,今天我们来聊聊硬件吧! SSD 普及的深远影响 如果说云的出现是一种商业模式的变化的话,驱动这个商业革命的推手就是最近十年硬件的快速更新。比起 CPU,存储和网络设备的进化速度更加迅速。最近五年,SSD 的价格 (包括 PCIe 接口) 的成本持续下降,批量采购的话已经几乎达到和 HDD 接近的价格。 <center>近 5 年 SSD 成本曲线</center> SSD 的普及,对于存储软件厂商的影响是深远的。 其一,是极大地缓解了 IO 瓶颈。对于数据库厂商来说,可以将更多的精力花在其他事情,而不是优化存储引擎上。最近两年发生了一些更大的变化,NVMe 正在成为主流,我们很早就在 Intel Optane 进行实验和投资,类似这样的非易失内存的技术,正在模糊内存和存储的界限,但是同时对开发者带来挑战也是存在的。举一个简单的例子,对于 Optane 这类的非易失内存

Avoid printStackTrace(); use a logger call instead

百般思念 提交于 2020-01-09 08:27:08
问题 In my application, I am running my code through PMD.It shows me this message: Avoid printStackTrace(); use a logger call instead. What does that mean? 回答1: It means you should use logging framework like logback or log4j and instead of printing exceptions directly: e.printStackTrace(); you should log them using this frameworks' API: log.error("Ops!", e); Logging frameworks give you a lot of flexibility, e.g. you can choose whether you want to log to console or file - or maybe skip some

PMD custom junit method naming rule not working

只谈情不闲聊 提交于 2020-01-06 09:02:56
问题 I have the following rule defined in my ruleSet.xml file: <rule ref="category/java/codestyle.xml/MethodNamingConventions"> <properties> <property name="junit4TestPattern" value="[a-z]*_[A-Z]{1}[a-z,A-Z]*_[A-Z]{1}[a-z,A-Z]*"/> <property name="violationSuppressXPath" value="//ClassOrInterfaceDeclaration['.*FoobarRepository']"/> </properties> </rule> But when running PMD nothing fails yet I have alot of methods that are not conform the junit4 method naming pattern. All method are annotated with

Adding new java based PMD rule in eclipse pmd plugin

吃可爱长大的小学妹 提交于 2020-01-05 05:32:07
问题 How can we add a new java based pmd rule in eclipse pmd plugin? I am getting following error: Invalid Class implementation.The class must be in plugin classpath and implement the rule interface. I have extended rule class with AbstractRule class. 回答1: I am able to add new rule in eclipse plugin.. Please follow this article. 来源: https://stackoverflow.com/questions/3564152/adding-new-java-based-pmd-rule-in-eclipse-pmd-plugin