art 虚拟机相关







​​​​​​​虚拟机中对象锁实现分析

Android 库加载命名空间

https://source.android.google.cn/docs/core/architecture/vndk/linker-namespace

Android共享库命名空间-CSDN博客

编译

prebuilts/clang/host/linux-x86/clang-r450784d/bin/llvm-addr2line   -f   -C   -e  out/target/product/mssi_64_cn_armv82/apex/com.android.art/lib64/libart.so

NDK

https://developer.android.com/about/versions/nougat/android-7.0-changes#ndk

AppData\Local\Android\Sdk\ndk\25.1.8937393\toolchains\llvm\prebuilt\windows-x86_64\bin\llvm-readelf.exe  -dW  libjvmti_agent.so

https://developer.android.google.cn/ndk

从Android高版本开始,Android ndk规定了第三方可以使用的稳定的api(可以查看google官方的介绍https://developer.android.google.cn/ndk/guides/stable_apis.html

SandHook 修改art 符号

javah -jni  -cp  nativehook\src\main\java\  -d SandHook-master\nativehook\src\main\jni com.xx.NativeHook

Java 跟jni 类型

JNI数据结构 JNINativeMethod_封烬杀的博客-CSDN博客

Native 层和java 层互相调用

Java与Native相互调用示例及讲解_native调用java_戏台无戏子&youngthful的博客-CSDN博客

prebuilts/clang/host/linux-x86/clang-r450784d/bin/llvm-nm  -D  out/target/product/mssi_64_cn_armv82/obj/SHARED_LIBRARIES/libart.com.android.art_intermediates/libart.so   | grep  -i   setjavadebugg

Native 内存泄漏

全民K歌内存篇3——native内存分析与监控 - 腾讯云开发者社区-腾讯云

Android malloc_debug

https://android.googlesource.com/platform/bionic/+/master/libc/malloc_debug/README_marshmallow_and_earlier.md

[原理] Android Native内存泄漏检测原理解析

https://www.cnblogs.com/zzcperf/articles/11615655.html

https://www.cnblogs.com/zzcperf/p/9563389.html

development/scripts/native_heapdump_viewer.py 

AndroidStudio如何使用Address Sanitizer(ASan)

https://blog.csdn.net/qq_14873525/article/details/117957095

Android性能优化之JVMTI与内存分配

Android性能优化之JVMTI与内存分配 - 爱码网

wrap.sh 方法root

libc init

https://www.cnblogs.com/ilocker/p/4645308.html

环境变量hook,wrap

Android 动态修改Linker实现LD_PRELOAD全局库PLT Hook_ld_preload android_今天写几行代码的博客-CSDN博客

打包wrap

封装 Shell 脚本  |  Android NDK  |  Android Developers

其它

C++ pirmer

GitHub - applenob/Cpp_Primer_Practice: 搞定C++ 。C++ Primer 中文版第5版学习仓库,包括笔记和课后练习答案。

Art配置

Configuring ART  |  Android Open Source Project

Jvmti

JVM(TM) Tool Interface 1.0.38

反优化:deopt

https://blog.csdn.net/z1032689332/article/details/120412569

锁优化

CAS   compareAndSwap

Atomic integer 使用  CAS 实现

单向链表

AQS  AbstractQueuedSynchronizer    jdk 并发编程,ReetrantLock(公平,按执行顺序 LockSupport.unpark和非公平 ,按照CAS 抢锁),CountDownLatch 基于其实现

AQS双向链表   CLH

 

百度安全验证

关于CAS等原子操作介绍 无锁队列的链表实现方法-电子发烧友网

C++11提供的原子数据类型< atomic >  

并发使用std::atomic,对特种内存使用volatile

volatile变量并不意味着记忆障碍,不具备exchange或compare_exchange_*的操作std::atomic<int>

std::atomic,可能需要使用boost :: atomic

std::atomic<T*>   原子指针

std::atomic<node> head;

node new_node(data);

node a;

        std::atomic_init(&head, a);

        head.store(a);

node current = head.load(std::memory_order_relaxed);

std::atomic<uint>* atomic_buffer = reinterpret_cast<std::atomic<uint>*>(data);

const size_t num_atomic_elements = svm_data_size / sizeof(std::atomic<uint>);

for (i = 0; i < num_atomic_elements; i++) { std::atomic_init(&atomic_buffer[i],

std::atomic<uint>(0));

}

基于双向链表实现无锁队列

基于双向链表实现无锁队列_路行的亚洲的博客-CSDN博客

单链表

https://www.hiyu.space/2021/02/20/C-%E5%A4%9A%E7%BA%BF%E7%A8%8B%EF%BC%88%E4%BA%94%EF%BC%89-%E5%8E%9F%E5%AD%90%E6%93%8D%E4%BD%9C%E4%B8%8E%E6%97%A0%E9%94%81%E7%BC%96%E7%A8%8B/

C++原子操作

Memory order

https://www.csdn.net/tags/Ntjacg3sMTM3My1ibG9n.html

std::atomic_compare_exchange_strong(q->tail,tail,*next);

//q->tail.compare_exchange_strong(tail,next);

            continue;

reinterpret_cast<message_t*>(std::atomic_load(q->tail));

q->tail.load()

std::this_thread::yield();

CAS   compareAndSwap

Atomic integer 使用  CAS 实现

单向链表

AQS  AbstractQueuedSynchronizer    jdk 并发编程,ReetrantLock(公平,按执行顺序 LockSupport.unpark和非公平 ,按照CAS 抢锁),CountDownLatch 基于其实现

AQS双向链表   CLH

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/3505.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

项目文章 | 缓解高胆固醇血症 ,浒苔多糖如何相助?

文章标题&#xff1a;Polysaccharides from Enteromorpha prolifera alleviate hypercholesterolemia via modulating the gut microbiota and bile acid metabolism 发表期刊&#xff1a;Food & Function 影响因子&#xff1a;6.317 作者单位&#xff1a;福建医科大…

关于Docker逃逸

关于Docker逃逸 文章目录关于Docker逃逸前言一、判断是否为docker容器&#xff1f;二、privileged特权模式启动容器逃逸三、 Docker Remote API未授权访问逃逸四、危险挂载导致Docker逃逸五、危险挂载Docker Socket逃逸六、 挂载宿主机procfs逃逸七、脏牛漏洞来进行docker逃逸八…

蓝桥杯C/C++VIP试题每日一练之矩形面积交

💛作者主页:静Yu 🧡简介:CSDN全栈优质创作者、华为云享专家、阿里云社区博客专家,前端知识交流社区创建者 💛社区地址:前端知识交流社区 🧡博主的个人博客:静Yu的个人博客 🧡博主的个人笔记本:前端面试题 个人笔记本只记录前端领域的面试题目,项目总结,面试技…

Qt容器学习

Qt容器Qt容器主要优点就是在所有的平台上的运行都表现的一致,并且它们都是隐含共享的.Qt容器的另外一个主要特征就是易于使用的迭代器类,它们可以利用QDataStream变成数据流,而且他们通常可以使用执行文件中的代码量比相应的STL类中的要少&#xff0e;最后&#xff31;t/Embedd…

动态规划---线性dp和区间dp

动态规划(三) 目录动态规划(三)一&#xff1a;线性DP1.数字三角形1.1数字三角形题目1.2代码思路1.3代码实现(正序and倒序)2.最长上升子序列2.1最长上升子序列题目2.2代码思路2.3代码实现3.最长公共子序列3.1最长公共子序列题目3.2代码思路3.3代码实现4.石子合并4.1题目如下4.2代…

论文解读:Less is More: Learning Highlight Detection from Video Duration

引言 高亮检测有可能极大地简化视频浏览&#xff0c;但现有的方法往往受到昂贵的监督要求的影响&#xff0c;人类观众必须手动识别训练视频中的高亮部分。我们提出了一种可扩展的无监督解决方案&#xff0c;利用视频时长作为隐式监督信号。我们的关键见解是&#xff0c;来自较…

【lwIP(第三章)】内存管理

目录一、内存管理简介二、lwIP内存堆和内存池应用三、lwIP内存堆简介1. First Fit算法2. lwIP内存堆原理解析2.1 mem_init程序解析2.2 mem_malloc程序解析2.3 mem_free程序解析四、lwIP内存池简介1. 实现lwIP内存池的文件2. lwIP内存池函数2.1 memp_init()2.2 memp_malloc()2.3…

数据迁移工具

1.Kettle Kettle是一款国外开源的ETL工具,纯Java编写,绿色无需安装,数据抽取高效稳定 (数据迁移工具)。 Kettle 中有两种脚本文件,transformation 和 job,transformation 完成针对数据的基础转换,job 则完成整个工作流的控制。 Kettle 中文名称叫水壶,该项目的主程序…

SpringBoot整合Redis、以及缓存穿透、缓存雪崩、缓存击穿的理解分布式情况下如何添加分布式锁 【续篇】

文章目录前言1、分布式情况下如何加锁2、具体实现过程3、测试3.1 一个服务按照多个端口同时启动3.2 使用jmeter进行压测前言 上一篇实现了单体应用下如何上锁,这一篇主要说明如何在分布式场景下上锁 上一篇地址:加锁 1、分布式情况下如何加锁 需要注意的点是: 在上锁和释放…

Android开发-Android UI与布局

01 Android UI 1.1 UI 用户界面(User Interface&#xff0c;简称 UI&#xff0c;亦称使用者界面)是系统和用户之间进行交互和信息交换的媒介&#xff0c;它实现信息的内部形式与人类可以接受形式之间的转换。软件设计可分为两个部分&#xff1a;编码设计与UI设计。 1.2 Andr…

【数据结构与算法】堆与堆排序

目录一.堆的实现1.堆的概念2.堆的代码实现二.堆排序的讲解一.堆的实现 1.堆的概念 堆是一种数据结构&#xff0c;首先它总是一颗完全二叉树(因为堆适合表示完全二叉树)&#xff0c;在逻辑上堆是一颗完全二叉树&#xff0c;真正实现上是使用数组来实现的。根据不同的规则(任意…

OpenMV快速上手 | OpenMV硬件版本概述及HelloWorld

文章目录一、OpenMV1. 什么是OpenMV2. OpenMV版本2.1. OpenMV1&#xff08;M4 V1&#xff09;2.2. OpemMV2&#xff08;M4 V2&#xff09;2.3. OpenMV3&#xff08;M7&#xff09;2.4. OpenMV4&#xff08;H7&#xff09;二、OpenMV开发环境搭建三、hello world1. 连接OpenMV2.…

AtCoder Beginner Contest 295——A-D讲解

蒟蒻来讲题&#xff0c;还望大家喜。若哪有问题&#xff0c;大家尽可提&#xff01; Hello, 大家好哇&#xff01;本初中生蒟蒻讲解一下AtCoder Beginner Contest 295这场比赛的A-D题&#xff01; A - Probably English Problem Statement You are given NNN strings W1,W2,…

开关电源Y电容放置的位置

Y电容&#xff0c;是我们工程师做开关电源设计时都要接触到的一个非常关键的元器件&#xff0c;它对EMI的贡献是相当的大的&#xff0c;但是它是一个较难把控的元器件&#xff0c;原理上并没有那么直观易懂&#xff0c;在EMI传播路径中需要联系到很多的寄生参数才能够去分析。 …

Python和Excel的完美结合:常用操作汇总(案例详析)

在以前&#xff0c;商业分析对应的英文单词是Business Analysis&#xff0c;大家用的分析工具是Excel&#xff0c;后来数据量大了&#xff0c;Excel应付不过来了&#xff08;Excel最大支持行数为1048576行&#xff09;&#xff0c;人们开始转向python和R这样的分析工具了&#…

JNI原理及常用方法概述

1.1 JNI(Java Native Interface) 提供一种Java字节码调用C/C的解决方案&#xff0c;JNI描述的是一种技术。 1.2 NDK(Native Development Kit) Android NDK 是一组允许您将 C 或 C&#xff08;“原生代码”&#xff09;嵌入到 Android 应用中的工具&#xff0c;NDK描述的是工具集…

python迭代器详解

不懂的问题&#xff1a;什么是协变、逆变&#xff1f;渐进式&#xff1f; _T_co TypeVar("_T_co", covariantTrue) # Any type covariant containers.作者&#xff1a;20岁爱吃必胜客&#xff08;坤制作人&#xff09;&#xff0c;近十年开发经验, 跨域学习者&…

【Docker】Network网络

文章目录网络情况查看宿主机网络情况 ifconfig查看docker网络模式命令 docker network ls常用基本命令查看网络 docker network ls查看网络源数据 docker network inspect XXX网络名字创建网络 docker network create test_network删除网络 docker network rm XXX网络名字netwo…

Kotlin~Adapter适配器模式

概念 Adapter&#xff08;Wrapper&#xff09; Pattern&#xff0c;连接两个不兼容的接口&#xff0c;让接口不兼容的对象能够相互合作。 适配器中的角色 请求者Client&#xff1a;调用者目标Target&#xff1a;定义了Client要使用的功能转化对象Adaptee&#xff1a; 需要适…

ROC-RK3588S-PC (Android 12) 看门狗的使用

&#x1f347; 博主主页&#xff1a; 【Systemcall小酒屋】&#x1f347; 博主追寻&#xff1a;热衷于用简单的案例讲述复杂的技术&#xff0c;“假传万卷书&#xff0c;真传一案例”&#xff0c;这是林群院士说过的一句话&#xff0c;另外“成就是最好的老师”&#xff0c;技术…