XLog

Mars Android 接入指南

情到浓时终转凉″ 提交于 2021-02-08 09:00:06
Mars Android 接入指南 https://github.com/Tencent/mars/wiki/Mars-Android-%E6%8E%A5%E5%85%A5%E6%8C%87%E5%8D%97 gradle 接入 gradle 接入使用的日志加密算法是不加密的,长连接短连接加解包也是默认的,如需自定义请参考 本地编译 。注意 gradle接入因为考虑依赖包体积的大小,只提供了 armeabi 和 x86_64 两种 CPU 架构的 so, 如果你使用的其他 so 有其他架构的,务必不要使用 gradle 依赖,参考 本地编译 编出你需要的 so,否则会报 Couldn’t find “xxxx.so” 的错误 目前 gradle 接入支持两种方式:mars-core 和 mars-wrapper。只是做个 sample 的话建议可以使用 mars-wrapper, 但是如果在实际 App 中使用 mars,建议使用 mars-core 或 本地编译 在 app 的 gradle 文件 app/build.gradle,添加 Mars 的库依赖: dependencies { compile 'com.tencent.mars:mars-core:1.2.2' } 或者 dependencies { compile 'com.tencent.mars:mars

Java 14 Hotspot 虚拟机垃圾回收调优指南!

人走茶凉 提交于 2021-01-05 00:24:33
作者:大鹏123 www.cnblogs.com/sxpujs/p/12638114.html 优化目标与策略(Ergonomics) 垃圾收集器、堆和运行时编译器默认选择 G1(Garbage First)收集器 GC线程的最大值受限于堆大小和可用的CPU资源 初始堆空间为物理内存的1/64 最大堆空间为物理内存的1/4 分层编译器,同时使用C1和C2 可以将 Java HotSpot VM 垃圾收集器配置为优先满足两个目标之一:最大暂停时间和应用吞吐量。如果首选目标得到满足,收集器将尝试最大化其他目标。 最大暂停时间目标(Maximum Pause-Time Goal) 暂停时间是垃圾收集器停止应用程序并恢复不再使用的空间的持续时间。最大暂停时间目标的意图是限制这些暂停的最长时间。 使用命令行选项 -XX:MaxGCPauseMillis=指定最大暂停时间目标。这被解释为向垃圾回收器提示,需要的暂停时间为 nnn 毫秒或更短。垃圾收集器调整 Java 堆大小和其他与垃圾收集相关的参数,以使垃圾收集暂停时间小于 nnn 毫秒。最大暂停时间目标的缺省值随收集器的不同而变化。这些调整可能会导致垃圾收集更频繁地发生,从而降低应用程序的总吞吐量。但是,在某些情况下,暂停时间的预期目标无法实现。 吞吐量目标(Throughput Goal) 吞吐量目标是根据收集垃圾所花费的时间来度量的

Java 14 Hotspot 虚拟机垃圾回收调优指南!

杀马特。学长 韩版系。学妹 提交于 2021-01-05 00:24:18
Java技术栈 www.javastack.cn 打开网站看更多优质文章 作者:大鹏123 出处:www.cnblogs.com/sxpujs/p/12638114.html 优化目标与策略(Ergonomics) 垃圾收集器、堆和运行时编译器默认选择 G1(Garbage First)收集器 GC线程的最大值受限于堆大小和可用的CPU资源 初始堆空间为物理内存的1/64 最大堆空间为物理内存的1/4 分层编译器,同时使用C1和C2 可以将 Java HotSpot VM 垃圾收集器配置为优先满足两个目标之一:最大暂停时间和应用吞吐量。如果首选目标得到满足,收集器将尝试最大化其他目标。 最大暂停时间目标(Maximum Pause-Time Goal) 暂停时间是垃圾收集器停止应用程序并恢复不再使用的空间的持续时间。最大暂停时间目标的意图是限制这些暂停的最长时间。 使用命令行选项 -XX:MaxGCPauseMillis=指定最大暂停时间目标。这被解释为向垃圾回收器提示,需要的暂停时间为 nnn 毫秒或更短。垃圾收集器调整 Java 堆大小和其他与垃圾收集相关的参数,以使垃圾收集暂停时间小于 nnn 毫秒。最大暂停时间目标的缺省值随收集器的不同而变化。这些调整可能会导致垃圾收集更频繁地发生,从而降低应用程序的总吞吐量。但是,在某些情况下,暂停时间的预期目标无法实现。 吞吐量目标

【译】Java 14 Hotspot 虚拟机垃圾回收调优指南

梦想与她 提交于 2021-01-04 22:14:50
本文主要包括以下内容: 优化目标与策略(Ergonomics) 垃圾收集器实现(Garbage Collector Implementation) 影响垃圾收集性能的因素 总堆(Total Heap) 年轻代 可用的收集器(Available Collectors) 串行收集器(Serial Collector) 并行收集器(Parallel Collector) G1收集器(Garbage-First Garbage Collector) Z收集器(The Z Garbage Collector) 选择收集器选择收集器 并行收集器 G1垃圾收集器 启用G1 基本概念 G1内部细节 G1 GC的默认选项 与其它收集器的比较 Z垃圾收集器 其它考虑因素 显式垃圾回收 类元数据(Class Metadata) 优化目标与策略(Ergonomics) 垃圾收集器、堆和运行时编译器默认选择 G1(Garbage First)收集器 GC线程的最大值受限于堆大小和可用的CPU资源 初始堆空间为物理内存的1/64 最大堆空间为物理内存的1/4 分层编译器,同时使用C1和C2 可以将 Java HotSpot VM 垃圾收集器配置为优先满足两个目标之一:最大暂停时间和应用吞吐量。 如果首选目标得到满足,收集器将尝试最大化其他目标。 最大暂停时间目标(Maximum Pause-Time Goal

postgres主从基于流复制

江枫思渺然 提交于 2020-11-24 02:26:12
环境: CentOS Linux release 7.6.1810 (Core) 内核版本:3.10.0-957.10.1.el7.x86_64 node1:192.168.216.130 node2:192.168.216.132 node3:192.168.216.134 一、首先在3个节点分别安装postgres,这里由于线上环境使用9.5.3,故本人直接使用9.5.3用于实验测试,其他版本的编译安装方式是相同的 yum install gcc readline-devel zlib-devel cd /tmp/ wget https://ftp.postgresql.org/pub/source/v9.5.3/postgresql-9.5.3.tar.gz tar -xf postgresql-9.5.3.tar.gz useradd postgres ./configure --prefix=/usr/local/postgresql make -j2 make install chown -R postgres:postgres /usr/local/postgresql/ 二、 在2个节点上分别配置环境变量并执行初始化操作 1、切换用户 su - postgres 2、配置环境变量 vi .bash_profile [postgres@localhost ~]$

PG启动恢复机制

有些话、适合烂在心里 提交于 2020-10-27 14:07:51
生产一个pg库停了后,起库的时候则需要很长时间,记录一下相应的原理。 如backup_label文件不存在(当前没有在做备份), 正情况情况下, 在恢复的开始, 服务器首先读取 pg_control ,然后读取检查点记录; 接着它通过从检查点记录里标识的日志位置开始向前扫描执行 REDO操作。 因为数据页的所有内容都保存在检查点之后的第一个页面修改的日志里(假设 full_page_writes 没有被禁用), 所以自检查点以来的所有变化的页都将被恢复到一个一致的状态 数据库正做备份,pg库宕机了,此时数据目录会生成backup_label 文件,则会读取backup_lable 中的check_point 点,以及备份期间记录的相应日志,对于这个文件的描述如下: 见 src/backend/access/transam/xlog.c /* * read_backup_label: check to see if a backup_label file is present * * If we see a backup_label during recovery, we assume that we are recovering * from a backup dump file, and we therefore roll forward from the checkpoint

JDK9的新特性:JVM的xlog如何正确运用?案例详解

一世执手 提交于 2020-08-20 07:06:20
JVM是java程序运行的基础,JVM中各种事件比如:GC,class loading,JPMS,heap,thread等等其实都可以有日志来记录。通过这些日志,我们可以监控JVM中的事件,并可以依次来对java应用程序进行调优。 在JDK9中引入的Xlog日志服务就是为这个目的而创建的。另外注意:很多人在学Java高级过程中难免会遇到各种问题解决不了。为此我建了个裙 783802103,里面很多架构师一起交流解答,没基础勿进哦! 通过xlog,JDK将JVM中的各种事件统一起来,以统一的形式对外输出。通过tag参数来区分子系统,通过log level来区分事件的紧急性,通过logging output来配置输出的地址。 更多内容请访问 www.flydean.com xlog的使用 先看一个最简单的xlog的使用例子: java -Xlog -version 输出结果: [0.016s][info][os] Use of CLOCK_MONOTONIC is supported [0.016s][info][os] Use of pthread_condattr_setclock is not supported [0.016s][info][os] Relative timed-wait using pthread_cond_timedwait is associated

如何进行算法的复杂度分析?

家住魔仙堡 提交于 2020-08-18 02:54:32
前言 本篇文章收录于专辑: http://dwz.win/HjK 你好,我是彤哥,一个每天爬二十六层楼还不忘读源码的硬核男人。 大家都知道,数据结构与算法解决的主要问题就是“快”和“省”的问题,即如何让代码运行得更快, 如何让代码更节省存储空间。 所以,“快”和“省”是衡量一个算法非常重要的两项指标,也就是我们经常听到的时间复杂度和空间复杂度分析。 那么,为什么需要复杂度分析呢?复杂度分析的方法论是什么呢? 这就是我们本节要解决的问题。 好了,进入今天的学习吧。 为什么需要复杂度分析? 首先,我们来思考一个问题:对于两个算法,我们如何评判谁运行得更快,谁运行时更节省内存? 你可能会说,这还不简单,把这两个算法运行一遍,统计下运行时间和占用内存不就可以了吗? 没错,这确实是一种不错的方法,而且它还有个非常形象的名字: 事后统计法 。 但是,这种统计方法具有非常明显的问题: 不同的输入对结果影响很大 对于一些输入,可能算法A执行得更快;对于另外一些输入,可能算法B执行得更快。比如,我们后面要学习的排序算法,输入的有序性对于不同的排序算法的影响是完全不同的。 不同的机器对结果影响很大 对于同样的输入,可能在一台机器上算法A更快,而在另外一台机器上算法B更快。比如,算法A可以利用多核而算法B不能,那么CPU的核数对这两个算法的影响将截然不同。 数据规模对结果影响很大 当数据规模小时

抖音xlog算法最新版解析

喜你入骨 提交于 2020-08-17 15:53:34
前言: 抖音xlog接口用于收集设备环境数据,主要用于检测设备环境是否“合规”,也就是大伙经常听到的过“风控”!xlog接口的body是加密后的设备环境数据,加密通过xlog算法加密。目前抖音APP最新版12.x依然还是用的02算法,此算法抖音官方老长时间没更新了...... “众所周知”: 抖音xlog算法是在native层,无法通过反编译dex获取到具体算法实现,xlog算法大概逻辑是: 1、将传入参数转成byte数组; 2、对压缩后的byte数组进行加密处理。 具体实现: 看看解密结果: 抓取xlog接口中02开头的body进行解密: 我的wx:YY_yhzf,需要算法可加我wx,一起进步一起探讨! 来源: oschina 链接: https://my.oschina.net/u/4355104/blog/4500800

JDK9的新特性:JVM的xlog

故事扮演 提交于 2020-08-09 12:25:38
简介 在java程序中,我们通过日志来定位和发现项目中可能出现的问题。在现代java项目中,我们使用log4j或者slf4j,Logback等日志记录框架来处理日志问题。 JVM是java程序运行的基础,JVM中各种事件比如:GC,class loading,JPMS,heap,thread等等其实都可以有日志来记录。通过这些日志,我们可以监控JVM中的事件,并可以依次来对java应用程序进行调优。 在JDK9中引入的Xlog日志服务就是为这个目的而创建的。 通过xlog,JDK将JVM中的各种事件统一起来,以统一的形式对外输出。通过tag参数来区分子系统,通过log level来区分事件的紧急性,通过logging output来配置输出的地址。 更多内容请访问 www.flydean.com xlog的使用 先看一个最简单的xlog的使用例子: java -Xlog -version 输出结果: [0.016s][info][os] Use of CLOCK_MONOTONIC is supported [0.016s][info][os] Use of pthread_condattr_setclock is not supported [0.016s][info][os] Relative timed-wait using pthread_cond_timedwait is