Shadow

小师妹学JVM之:JIT中的PrintCompilation

你。 提交于 2020-08-11 07:42:34
简介 上篇文章我们讲到了JIT中的LogCompilation,将编译的日志都收集起来,存到日志文件里面,并且详细的解释了LogCompilation日志文件中的内容定义。今天我们再和小师妹一起学习LogCompilation的姊妹篇PrintCompilation,看看都有什么妙用吧。 PrintCompilation 小师妹:F师兄,上次你给讲的LogCompilation实在是太复杂了,生成的日志文件又多,完全看不了,我其实只是想知道有哪些方法被编译成了机器码,有没有什么更加简单的办法呢? 真理的大海,让未发现的一切事物躺卧在我的眼前,任我去探寻- 牛顿(英国) 当然有的,那就给你介绍一下LogCompilation的妹妹PrintCompilation,为什么是妹妹呢?因为PrintCompilation输出的日志要比LogCompilation少太多了。 老规矩,上上我们的JMH运行代码,文章中使用的代码链接都会在文末注明,这里使用图片的原因只是为了方便读者阅读代码: 这里和上次的LogCompilation不同的是,我们使用:-XX:+PrintCompilation参数。 其实我们还可以添加更多的参数,例如: -Xbatch -XX:-TieredCompilation -XX:+PrintCompilation 先讲一下-Xbatch。

伪类的巧应用 省去activ的隐藏逻辑

▼魔方 西西 提交于 2020-08-11 07:36:27
实现这种效果 demo <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> <style> .father{ /* padding: 30px; */ display: flex; } .son{ width: 100px; height: 100px; box-shadow:2px 2px 3px #aaaaaa; } .son.active{ background-color: aqua; position: relative; } .son.active::after{ content: ""; position: absolute; width: 100px; height: 20px; background-color: blue; bottom: 0; } </style> </head> <body> <div class="father"> <div class="son"></div> <div class="son active"></div> <div class="son"></div> </div

cpu故障定位 top strace pstack

吃可爱长大的小学妹 提交于 2020-08-11 06:31:09
一次服务器CPU占用率高的定位分析 推荐 背景 :通过性能监控发现上线服务器cpu某核占用率已经达到了100%,而且是由我们的某个核心服务导致的。幸亏由于我们的服务进程由多个相同worker(线程)调度承担的,所以除了CPU占用率高之外,并没有对服务造成影响。随着 上次我们找到那个吃IO的罪犯 ,这次我们要追捕的是潜伏在团体中的特务,更加惊险刺激哟! 系统环境 用 top 命令很容易定位到是谁占用CPU最高。 以我们的这个业务进程(imDevServer)举例,为什么说这货是个潜伏者呢?因为这是个多线程的进程,我们要知道实际上占用cpu的最小单位是线程,所以肯定是众线程中的某一个或几个占用CPU过高导致的。 top -H -p pid 命令查看进程内各个线程占用的CPU百分比 如上图所示我们可以看出id为8863的线程cpu占用率最高。好,我们现在只要能找到他偷走的cpu就好了,虽然这小子嘴巴严,但是我们有一套完善的审问流程,不怕他不招。首先出马的是 strace -T -r -c -p pid 命令 它的作用是查看系统调用和花费的时间,epoll_wait虽然占用的调用时间多,但是他本身是个正常的阻塞调用。 我们接着让 pstack pid 出马 可以看到每个线程的调用堆栈,找到已经找出的占用CPU最高的那个线程,然后看他的调用堆栈,很容易看出在哪一步逻辑上导致了busy

产品/项目经理,有效提高效率的11种方法

那年仲夏 提交于 2020-08-11 05:51:15
产品 / 项目经理由于所处的环境,面对的情况和接触的人群复杂多变,往往需要具备较为全面的能力。与能力匹配的就是拥有不同的思维方式。 许多个微不足道的反射神经所产生的思想,最终导向到某个结果或决策。如果能够明确,很显然是可以事半功倍,走向成功的。 当你真正具备了这些思维,面对下一个五年甚至十年,你还会恐慌吗? 1 、 先考虑他人感受 拥有一颗同理心 说到同理心,大部分人都知道要体恤用户感受,并以此指导产品功能设计。比较常见的一种说法是,你认为的≠用户认为的,因此我们需要站在用户的角度考虑问题,要变成傻瓜来体验流程,抛弃自己的主观意识等等。 我们都知道,PM的一个重要的职责就是沟通协作,过程中你需要和内部的产品、设计、运营人员沟通;你也需要和外部的客户、甲方、供应商沟通……过程中小到某个需求的摇摆,大到整个项目的延期难免有突发状况。而同理心思维的运用就应当出现在这个时候。 试着用同理心思维来解决问题吧。即使这背后你知道由于各种不可控(或非你)原因,不如站在对方的角度,审视对面这个你。你会期待他(也就是你自己)做些什么呢?是不是可以勇敢点承认问题,给对方造成的影响致歉,让情绪有出口。这样冷静下来之后是不是也知道这背后的原因非对方个人所致,可以给对方一个台阶下呢。由此一来,双方的关系开始缓和,一切也又开始推动了。 核心思路:注重顺应及理解,而不是抵抗。 2 、 不抱怨 思考解决方案

Vue + Element UI 实现权限管理系统 前端篇(四):优化登录流程

半世苍凉 提交于 2020-08-11 05:30:51
完善登录流程 1. 丰富登录界面 1.1 从 Element 指南中选择组件模板丰富登录界面,放置一个登录界面表单,包含账号密码输入框和登录重置按钮。 <template> <el-form :model="loginForm" :rules="fieldRules" ref="loginForm" label-position="left" label-width="0px" class="demo-ruleForm login-container"> <h3 class="title">系统登录</h3> <el-form-item prop="account"> <el-input type="text" v-model="loginForm.account" auto-complete="off" placeholder="账号"></el-input> </el-form-item> <el-form-item prop="password"> <el-input type="password" v-model="loginForm.password" auto-complete="off" placeholder="密码"></el-input> </el-form-item> <!-- <el-checkbox v-model="checked" checked

springboot发送邮件任务入门(qq邮箱代码实现)

孤街浪徒 提交于 2020-08-11 04:04:03
1.引入依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-mail</artifactId> </dependency> 2.找到qq邮箱,开启smtp服务,这里生成你的密码,复制第三步用 3.password里输入你获取到的密码(重点:这里一定不能错) spring.mail.username=1550213743@qq.com spring.mail.password=******** spring.mail.host=smtp.qq.com #开启加密验证 spring.mail.properties.mail.smtp.ssl.enable=true 4.EmailApplicationTests类里进行测试, contextLoads为简单的发送,仅限于文本。contextLoads2为复杂,可以发送图片,html格式 package com.xyj; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context

OpenCV开发笔记(六十):红胖子8分钟带你深入了解Harris角点检测(图文并茂+浅显易懂+程序源码)

半腔热情 提交于 2020-08-11 02:28:08
若该文为原创文章,未经允许不得转载 原博主博客地址: https://blog.csdn.net/qq21497936 原博主博客导航: https://blog.csdn.net/qq21497936/article/details/102478062 本文章博客地址: https://blog.csdn.net/qq21497936/article/details/106367317 各位读者,知识无穷而人力有穷,要么改需求,要么找专业人士,要么自己研究 红胖子(红模仿)的博文大全:开发技术集合(包含Qt实用技术、树莓派、三维、OpenCV、OpenGL、ffmpeg、OSG、单片机、软硬结合等等)持续更新中…(点击传送门) OpenCV开发专栏(点击传送门) 上一篇:《 OpenCV开发笔记(五十九):红胖子8分钟带你深入了解分水岭算法(图文并茂+浅显易懂+程序源码) 》 下一篇:持续补充中… <br> 前言   红胖子,来也!   做识别,有时候遇到需求,比如识别一个三角形,并求得三角形三个顶点的角度,这种属于教育场景类似的,还有其他场景,那么检测角点就显得很重要了,检测出角点并且求出其角度。 <br> Demo                   <br> 图像特征三大类型 边缘:图像强度发生突变的区域,其实就是高强度梯度区域; 角点:两个边缘相交的地方,看起来像一个角;

Nexus Repository Manager 2.x command injection vulnerability (CVE-2019-5475) bypassed twice

纵然是瞬间 提交于 2020-08-11 01:27:46
Author: Badcode and Longofo@Knownsec 404 Team Date: 2020/02/09 Chinese Version: https://paper.seebug.org/1260/ Foreword At the beginning of September 2019, we responded to the Nexus Repository Manager 2.x command injection vulnerability (CVE-2019-5475). The general reason and steps for recurrence are on Hackerone . It was announced that after emergency response to this vulnerability, we analyzed the patch to fix the vulnerability and found that the repair was incomplete and could still be bypassed. This article records two bypasses of the vulnerability. Although the fix version was released

week03

馋奶兔 提交于 2020-08-11 01:24:35
01 显示/etc目录下,以非字母开头,后面跟了一个字母以及其它任意长度任意字符的文件或目录 我们先新建几个符合过滤条件的文件 touch /etc/1a /etc/1a_fjksjl [root@centos7 data]# ls /etc/[^[:alpha:]][alpha]* /etc/1a /etc/1a_fjksjl 02 复制/etc目录下所有以p开头,以非数字结尾的文件或目录到/tmp/mytest1目录中。 [root@centos7 data]# mkdir /tmp/mytest1 [root@centos7 data]# cp -a /etc/p[^[:digit:]]* /tmp/mytest1 [root@centos7 data]# cd /tmp/mytest1 [root@centos7 mytest1]# ls pam.d pbm2ppa.conf pki pnm2ppa.conf postfix printcap protocols python passwd pinforc plymouth polkit-1 ppp profile pulse passwd- pkcs11 pm popt.d prelink.conf.d profile.d purple 03 将/et/issue文件中的内容转换为大写后保存至/tmp/issue.

Solidity合约安全漏洞分析教程【Mythril】

Deadly 提交于 2020-08-11 00:29:50
在这个教程中,我们将学习Mythril的安装与使用方法,了解Mythril的工作原理,掌握如何利用Ether Thief和Suicide模块分析合约的安全漏洞,以及如何配置Mythril安全分析的交易数量参数和执行超时参数。 用自己熟悉的语言学习以太坊DApp开发: Java | Php | Python | .Net / C# | Golang | Node.JS | Flutter / Dart 1、安装Mythril安全分析工具 执行如下命令安装Mythril: $ pip install mythril 使用如下命令检查安装是否成功,确保版本不低于0.21.7: $ myth version Mythril version v0.21.15 Mythril最基本的安全分析命令是 myth analyze ,例如: $ myth analyze <Solidity file> $ myth analyze -a <contract address> 没有其他参数的话,myth analyze命令将执行适合大多数情况的通用分析。 2、Mythril工作原理 Mythril通过在一个特制的以太坊虚拟机里运行智能合约字节码来检查合约的安全问题,它使用 符号执行 技术来检查程序可能的状态,分析过程包含以下步骤: 1、获取合约字节码 2、初始化合约账户的状态 3