Wesley13 Wesley13
3年前
Java Synchronized
JavaSynchronized1引言在多线程并发编程中Synchronized一直是元老级角色,很多人都会称呼它为重量级锁,但是随着JavaSE1.6对synchronized进行了各种优化之后,有些情况下它并不那么重了,JavaSE1.6中为了减少获得锁和释放锁带来的性能消耗而引入的偏向锁和轻量级锁。2术语定义
Stella981 Stella981
3年前
Android Native 内存泄漏系统化解决方案
导读:C内存泄漏问题的分析、定位一直是Android平台上困扰开发人员的难题。因为地图渲染、导航等核心功能对性能要求很高,高德地图APP中存在大量的C代码。解决这个问题对于产品质量尤为重要和关键,高德技术团队在实践中形成了一套自己的解决方案。分析和定位内存泄漏问题的核心在于分配函数的统计和栈回溯。如果只知道内存分配点不知道调用栈会
Wesley13 Wesley13
3年前
ETH 4G DAG问题及其对策
众所周知,对于只有4Gb显存的显卡来说,ETH的DAG尺寸已经非常大了,快要大到放不进只有4Gb显存的显卡了。另外,windows10操作系统还要从4Gb的显存中拿走0.5Gb显存,加剧了4Gb显卡显存的紧张态势。但这并不表明4Gb显存的显卡现在就挖不了ETH了,因为当显卡的显存不足够容下ETH的DAG文件时内核会使用系统内存(内存条的内存)。由于显卡
Easter79 Easter79
3年前
TiDB集群大规模删除实践
TiDB集群大规模删除实践一、背景集群在写入了一定的时间后,是存在一些历史可以删除的数据的,为了对集群的空间释放,我和业务一并讨论和计划了待删除的表,但是在drop数据时发现集群QPS有抖动,经过排查发现触发了compaction的流控集群配置集群版本:v3.0.5集群配置:普通SS
Wesley13 Wesley13
3年前
Java 虚拟机垃圾收集机制详解
本文摘自深入理解Java虚拟机第三版垃圾收集发生的区域之前我们介绍过Java内存运行时区域的各个部分,其中程序计数器、虚拟机栈、本地方法栈三个区域随线程共存亡。栈中的每一个栈帧分配多少内存基本上在类结构确定下来时就已知,因此这几个区域的内存分配和回收都具有确定性,不需要考虑如何回收的问题,当方法结束或线程结
Wesley13 Wesley13
3年前
Java并发学习笔记(17)性能,分离锁
多线程往往比单线程开销要大,这包括加锁释放锁,信号,同步,切换,线程的创建销毁,调度.(1)如何优化性能:     如果重复计算量大的话,使用缓存来保存旧的结果.以便下次计算时使用.     减少阻塞.运行和阻塞会增加上下文切换.     因为锁是串行的这会引起大量的阻塞:所以我们在使用锁的时候要尽量的做到以下几
Stella981 Stella981
3年前
JVM(7)之 从GC日志分析堆内存
在前面的文章中,我们只设置了整个堆的内存大小。但是我们知道,堆又分为了新生代,年老代。他们之间的内存怎么分配呢?新生代又分为Eden和Survivor,他们的比例大小能改变吗?其实这些都是可控的,以前没有讲到是因为就算讲了也只是讲讲而已,看不到实质性的东西。因此这章我们通过分析GC日志来一步步讲解如何细化设置堆内存。   首先我们来了解几个相关的参数:
子桓 子桓
2年前
磁盘清理软件分享~
是一款用于Mac操作系统的磁盘清理软件。它可以扫描并删除计算机中不需要的文件,例如临时文件、日志文件、旧的附件文件件等,以释放磁盘空间并提供高级系统性能。是Macos系统上一款系统清理工具,它可以帮助您了解磁盘使用状况,并进行准确的分析,让您非常轻松就能揪
Macos系统监控工具:iStat Menus for mac中文版 支持M1
iStatMenus是一款Mac上的硬件信息检测软件,能够实时监控计算机的CPU、GPU、内存、硬盘、网络、温度、电池以及系统时间等各个方面的信息。通过iStatMenus,用户可以在菜单栏实时查看Mac电脑的运行状态,包括CPU使用率、内存占用情况、硬盘