SpringBoot 集成 JavaMelody实现 性能监控

1、JavaMelody JavaMelody能够在运行环境监测Java或Java EE应用程序服务器。并以图表的形式显示:Java内存和Java CPU使用情况,用户Session数量,JDBC连接数,和http请求、sql请求、jsp页面与业务接口方法(EJB3、spring、Guice)的执行数量,平均执行时间,错误百分比等。图表可以按天,周,月,年或自定义时间段查看。 2、Maven依赖 net.bull.javamelody javamelody-core 1.73.1 com.lowagie itext 2.1.7 3、配置JavaMelody @Configuration public class MelodyConfig { /** * 配置javamelody监控 * spring boot 会按照order值的大小,从小到大的顺序来依次过滤 */ @Bean @Order(Integer.MAX_VALUE - 1) public FilterRegistrationBean monitoringFilter() { FilterRegistrationBean registration = new FilterRegistrationBean(); registration.setFilter(new MonitoringFilter()); registration.addUrlPatterns("/*"); registration.setName("monitoring"); return registration; } /** * 配置javamelody监听器sessionListener */ @Bean public ServletListenerRegistrationBean servletListenerRegistrationBean() { ServletListenerRegistrationBean slrBean = new ServletListenerRegistrationBean(); slrBean.setListener(new SessionListener()); return slrBean; } } 4、启动项目 访问路径为: http://ip:port/项目名/monitoring

1215软件防破解

防破解概述 1、破解软件的方法: ·反汇编调试 模拟出注册机的算法 ·算法模拟不成 直接爆破 删除掉验证的代码 ·根据程序注册成功之后写的注册项 生成出REG注册文件 2、软件加密方式 防破解主要是用于商业软件 加密注册 一般三种验证方式: 1、本地加密 2、网络验证 3、本地+网络验证 本地加密不需要联网就可以使用 但是防破解能力肯定不会很高 而且只能在一台电脑上使用 网络验证可以在多台电脑上使用 但是它需要联网 那具体加密方式该选什么呢? 就拿屏幕录像专家来说 网上他的注册机一堆一堆 但是不知道有没有人发现 用网上注册机生成的注册码注册之后录制时间长了 录像上会有 屏幕录像专家未注册 的水印 这样别人如果看了这个视频 就等于给屏幕录像专家做宣传 但是真正去购买的注册码 是不会出现这个水印的 不管我们有没有去购买正版注册码 反正他正版68块钱一套 这个也让他们赚不了多少 他们赚在哪里呢 ? 有那么多论坛找他们定做教程加密器啊 至于如何选 就得看你的意愿 像屏幕录像专家这个明显是放长线钓大鱼 他收68块钱 肯定 也有人买 但是更多人找他定做软件了 如果你是很想通过单单的卖这个程序赚钱 那么你可以使用 本地加密+网络验证的方式 如果你也想放长线钓大鱼 你可以试着免费出去(当然我这个等于白说),或者用单单的本地加密 或者网络验证 怎么去防 就得根据你的加密方式 来去防 这个我们这节课先不讲 选好加密方式是防破解的准备!!!!!!!!!!!! 3、防破解原理与方法 原理很简单 就是限制破解者去反汇编你的程序 调试你的程序 尽量的混淆他 不让他们轻易的看出你程序反汇编代码中的猫腻 方法:1、加壳 2、暗桩 3、在程序中加多个校验 在多个位置加入注册验证 4、防破解原则 ·不要把太多的精力浪费在防破解上 做好软件功能才是第一

git错误: failed to push some refs to ‘xxx’

error: failed to push some refs to ‘[email protected]:zhengjinjun/payou.git’ hint: Updates were rejected because the remote contains work that you do hint: not have locally. This is usually caused by another repository pushing hint: to the same ref. You may want to first integrate the remote changes hint: (e.g., ‘git pull …’) before pushing again. hint: See the ‘Note about fast-forwards’ in ‘git push –help’ for details. 出现问题及解决办法: 原因: github中的README.

Android移动客户端性能测试浅谈——电量

本文由作者张迎贞授权网易云社区发布。 APP性能测试除了需要监控PCU、内存占用、流量等,还需要获取APP的电量数据,测试在可接受范围内,避免APP出现过度消耗电量的现象。 手机有很多硬件模块:CPU,蓝牙,GPS,显示屏,Wifi,射频(Cellular Radio)等,在手机使用过程中,这些硬件模块可能处于不同的状态,譬如WIFI打开或关闭,屏幕是亮还是暗,CPU运行或休眠。 硬件模块在不同的状态下的耗电量是不同的。Android在进行电量统计时,并不是采用直接记录电流消耗量的方式,而是跟踪硬件模块在不同状态下的使用时间,收集一些可用信息,用来近似的计算出电池消耗量。 从用户使用层面来看,Android需要统计出应用程序的耗电量。应用程序的耗电量由很多部分组成,可能使用了GPS,蓝牙等模块,可能应用程序要求长时间亮屏(譬如游戏、视频类应用)。 一个应用程序的电量统计,可以采用累计应用程序使用所有硬件模块时间这种方式近似计算出来。 举一个例子,假定某个APP使用了GPS,使用时间用 t 表示。GPS模块单位时间的耗电量用 w 表示,那么,这个APK使用GPS的耗电量就可以按照如下方式计算: 耗电量 = 单位时间耗电量(w) × 使用时间(t) 测试方法多种多样: 1、CPU空闲时,停留在主界面不退出,打开网络然后锁屏,12小时后查看电量、流量变化 2、APP在操作运行时(此过程可借助使用monkey进行压力测试),1小时后查看电量、流量变化 3、第三方APP进行步骤1、2相同的场景测试 4、对比竞品APP的耗电量。 期望结果:APP在静止状态时无没有明显的耗电情况,在运行状态时耗电量在可接受范围内。 方法1——手机自带 有的手机设置菜单里面会有流量和电量统计类,只需在测试前后记录下电量值,便可获取消耗电量数值。 方法2——使用第三方工具 已知公式 : 耗电量 = 电流 * 时间 例:平均电流为150mA,测试时间30min,则,30min内耗电量为:150 * 30 /60=75mAh(毫安小时)。 通过耗电量和使用手机电量的百分比,可得出手机电池容量(理论值)。 一个系统走一遍基础功能耗电不应超过20%。 1、Emmagee https://github.com/NetEase/Emmagee Emmagee是网易杭州研究院QA团队开发的一个简单易上手的Android性能监测小工具,主要用于监控单个App的CPU,内存,流量,启动耗时,电量,电流等性能状态的变化,且用户可自定义配置监控的频率以及性能的实时显示,并最终生成一份性能统计文件。 2、腾讯GT http://gt.tencent.com/download.html 此apk是一款可以对APP进行测试的软件,可以在任何情况下快速测试手机app的CPU、内存、流量、电量、帧率/流畅度等性能测试。 使用方法: 打开GT,点击选择被测应用,选中自己要测的app,选择关注的测试点,cup、net(流量)、内存(pss)等,点击“启动”,在gt的插件标签里有耗电测试,导出文件查看电量使用。 3、其他各种常见耗电量监控工具 金山电池医生:能够记录CPU耗时、流量消耗随时间的变化曲线,这样可以查看app耗电在哪些时间点. GSam Battery Pro:耗电量信息显示详细,包括了唤醒锁数,前后台占用cpu的时间,可以导出数据,支持多种监控起始时间点设置 PowerTutor:1.显示系统电量消耗水平,记录耗电量的焦耳值,不是百分比,包括LCD/OLED,CPU,WiFi,3G,GPS和Audio;2.查看某段时间内所有运行中的应用程序的耗电量 Battery Monitor Widget:高度可定制化的电量监控小工具,不仅可以显示当前电量,估算剩余电量支撑时间,还可以一目了然地检测出各个APP的耗电历史,从而方便进行比较。 Smart Battery Monitor:除了可以在状态栏显示电池消耗百分比外,还可以显示电池的温度,以及已充电时间。 Battery Indicator:亮点是轻便、小巧,甚至使用它时不会消耗电池。当然,它可以显示电池的电量百分比、电池的温度、以及电池的健康信息。 Battery Widget:这个工具不仅是一个电池Widget,还可以作为显示选项,GPS,WiFi,蓝牙选项等的快捷方式。 Battery Saver:被称为管理电池的最强大应用之一。除了显示电量信息,电池温度和健康信息外,它还可以快速管理一些耗电量大的应用如:GPS,WiFi,蓝牙等。另外:该工具可以查看一天之内的哪个时间点电池的耗电量最大。| 等等等等 方法3——Battery Historian Android框架层通过一个名为batterystats的系统服务,电池的信息,电压,温度,充电状态等等,都是由BatteryService来提供的。电池的这些信息是BatteryService通过广播主动把数据传送给所关心的应用程序。实现了电量统计的功能,batterystats实现原理可以查阅电量统计服务

UX——[Universal Style]

基于Microsoft通用设计风格(UWP风格)。 官网:https://docs.microsoft.com/zh-cn/windows/uwp/design/style/color Theme:主题(亮色暗色、系统自动选择) foreground:前景颜色 background:背景颜色 accent:强调色 color:https://doc.qt.io/qt-5/qtquickcontrols2-universal.html#pre-defined-universal-colors 视觉效果:

使用Opencv,大恒C++ SDK采集大恒水星相机图像

在项目中,使用了大恒的水星相机,需要把图存成Opencv的Mat形式。大恒C++ SDK采集的图像数据不能直接把图像的数据存进Mat,需要将原始数据(我这里是BayerRG8)经过格式转换之后转变成RGB24的格式,直接调用SDK的ConvertToRGB24函数。然后再向Mat写入数据。 代码是参考了C++ SDK的手册,按说明书配置VS工程。 说明书自带的示例工程的代码直接拷贝出来报错,不能使用,缺少了几个空格。我自己的代码已经修改了,并把图传给了Mat。 直接上代码 // An highlighted block #include <iostream> #include <opencv2/opencv.hpp> //using namespace cv; using namespace std; #include <GalaxyIncludes.h> cv::Mat img; //用户继承掉线事件处理类 class CSampleDeviceOfflineEventHandler : public IDeviceOfflineEventHandler { public: void DoOnDeviceOfflineEvent(void* pUserParam) { cout << "收到设备掉线事件!" << endl; } }; //用户继承属性更新事件处理类 class CSampleFeatureEventHandler : public IFeatureEventHandler { public: void DoOnFeatureEvent(const GxIAPICPP::gxstring&strFeatureName, void* pUserParam) { cout << "收到曝光结束事件!" << endl; } }; //用户继承采集事件处理类 class CSampleCaptureEventHandler : public ICaptureEventHandler { public: void DoOnImageCaptured(CImageDataPointer&objImageDataPointer, void* pUserParam) { cout << "

java集合容器至 Comparable/tor 的笔记

================ ArrayList 查的快======================== 主要的索引的方法: index对应元素的 1: 存取的是一致: 2: 有索引 3: 可存取重复 注意:就是 关于 索引的 越界的异常 ———-。主要的方法 add(加一个) addAll(全加) remove 删除指定一个的 removeAll(删除指定全部的) get(获取 ) set(替换) 返回的是以替换的 位置 ArrayList 的底层 是 数组扩容的 ######list集合的几个遍历的方法 1:普通for、 2:增强 for 3:迭代器Iteration ====linkdeList 增删改的快 lastAdd()lastAddAll() endAdd()endAddAll() linkdeList:底层是 双循环 链表结构 节点的原因:看源码—– 数组转 链表 add linkedlast类里的 函数 —遍历慢— 每次 都是 加速的功能 的 —》在里面找get方法 里nodenode方法 里 在 长度大于二分之一的就 会 从头往后找 往 小于 , 就从后往头找 现在问的都是 1.7 的 hashMap 1.8 的就会很少的

基于less实现换肤

themes -skins –dark.less –white.less 对应皮肤的less变量 -with-skins.less 定义less函数 .with-skins(@rules){ :global(.skin-dark){@import (multiple) “./skins/dark.less”;@rules();} :global(.skin-white){@import (multiple) “./skins/white.less”;@rules();} } body标签下加上div 某个涉及换肤的元素定义为 .with-skins({ .xx { color:@c-fg; } });

cv2伪彩色applyColorMap()函数

本文主要介绍cv2模块中的伪彩色applyColorMap()函数。 引用自:https://blog.csdn.net/u013381011/article/details/78341861 colormap(色度图) 假设我们想在地图上显示美国不同地区的温度。我们可以把美国地图上的温度数据叠加为灰度图像——较暗的区域代表较冷的温度,更明亮的区域代表较热的区域。这样的表现不仅令人难以置信,而且代表了两个重要的原因。首先,人类视觉系统没有被优化来测量灰度强度的微小变化。我们能更好地感知颜色的变化。第二,我们用不同的颜色代表不同的意思。用蓝色和较温暖的温度用红色表示较冷的温度更有意义。 温度数据只是一个例子,但还有其他几个数据是单值(灰度)的情况,但将其转换为彩色数据以实现可视化是有意义的。用伪彩色更好地显示数据的其他例子是高度、压力、密度、湿度等等。 在OpenCV中使用applycolormap(伪彩色函数) OpenCV的定义12种colormap(色度图),可以应用于灰度图像,使用函数applycolormap产生伪彩色图像。让我们很快看到如何将色度图的一种模式colormap_jet应用到一幅图像中。 下面是示例代码: import cv2 import numpy as np def colormap_name(id): switcher = { 0 : "COLORMAP_AUTUMN", 1 : "COLORMAP_BONE", 2 : "COLORMAP_JET", 3 : "COLORMAP_WINTER", 4 : "COLORMAP_RAINBOW", 5 : "COLORMAP_OCEAN", 6 : "COLORMAP_SUMMER", 7 : "COLORMAP_SPRING", 8 : "COLORMAP_COOL", 9 : "COLORMAP_HSV", 10: "COLORMAP_PINK", 11: "COLORMAP_HOT" } return switcher.get(id, 'NONE') img = cv2.imread('./pluto.jpg', cv2.IMREAD_GRAYSCALE) im_out = np.zeros((600, 800, 3), np.uint8) for i in range(0, 4): for j in range(0, 3): k = i + j * 4 im_color = cv2.

HP Z840 安装Ubuntu18.04 系统问题

一、系统问题 之前用16.04安装总提示: nouveau 0000:04:000.0:DRM: failed to create kernel channel,-22….. 这样的错误,估计是与系统16.04太老,而P4000太新产生的问题。因此采用18.04 U盘启动18.04,第一次安装没有问题,在分区是采用的是 something else,配置如下:swap-50G,/ -100G, boot -50G, home –余下的。 后来装软件搞坏了系统,因此,重装了系统,自此陷入重装18.04的麻烦。 问题是:装好之后有时会起不来,提示如下错误: signature not signed with a trusted key,,,, failed to start load kernel Modules 之后发现在装系统是又有别的问题: GRUP installation failed The ‘grub-efi-amd64-signed’ package failed to install into /target/. Without the GRUB boot loader ,the installed system will not boot. 我也不清楚什么问题,但发现别人成功的系统里有/boot/efi 这个分区,而我的没有。刚开始以为与BIOS里的安全启动有关系,怎么改都没有解决问题。 最终的办法是在分区的时候,不在自己分区(采用something else 选项),而改用一个选项(erase the disk and install ubuntu).