当前位置: 首页 > news >正文

公司网站开发题目来源常州网站建设制作

公司网站开发题目来源,常州网站建设制作,百度站长网站地图,备案的网站转移关于作者#xff1a;CSDN内容合伙人、技术专家#xff0c; 从零开始做日活千万级APP。 专注于分享各领域原创系列文章 #xff0c;擅长java后端、移动开发、人工智能等#xff0c;希望大家多多支持。 目录 一、导读二、概览三、案例分析3.1 使用memory-profiler3.2 使用 cp… 关于作者CSDN内容合伙人、技术专家 从零开始做日活千万级APP。 专注于分享各领域原创系列文章 擅长java后端、移动开发、人工智能等希望大家多多支持。 目录 一、导读二、概览三、案例分析3.1 使用memory-profiler3.2 使用 cpu-profiler 四、 推荐阅读 一、导读 我们继续总结学习Java基础知识温故知新。 二、概览 内存抖动是指内存不稳定频繁分配和回收导致内存不稳定其表现形式为频繁GC 内存抖动可能会导致以下问题 性能下降由于频繁的内存分配和回收操作系统的性能会受到影响导致运行速度变慢。程序崩溃、OOM内存抖动可能导致内存分配错误或者内存泄漏导致程序崩溃或者运行不稳定。系统资源消耗内存抖动会增加系统资源的消耗包括内存和CPU的占用率可能导致系统负载增加。 内存抖动大部分都是由于频繁创建对象导致会占用大量内存同时会产生大量的内存碎片不连续的内存碎片很多情况下是无法被分配的。 从而导致OOM的产生。 要防止内存抖动可以采取以下几个方法和策略 合理规划内存分配在设计和编写代码时要合理规划内存的分配和释放避免频繁的内存分配和回收操作。可以使用对象池、缓冲区等技术来预先分配和管理一块内存减少内存分配的开销。 避免内存碎片内存碎片是指内存中存在一些被分割成小块的未被使用的空间。内存碎片会导致内存分配失败或效率低下。可以通过使用内存池、内存复用等方法来减少内存碎片的产生。另外考虑使用内存管理工具或垃圾回收机制来自动进行内存碎片整理和回收。 优化算法和数据结构一些算法和数据结构可能会导致内存抖动例如频繁的动态数组扩容和收缩操作。可以使用更合适的数据结构或算法降低内存抖动的概率或频率。比如使用链表代替数组使用平衡二叉树代替线性查找等。 设置适当的内存分配策略根据实际情况可以根据内存使用情况和需求设置合适的内存分配策略。可以使用内存池、内存缓存等技术来预先分配和管理内存减少频繁的内存分配与回收操作。 进行内存性能优化对于大型或长时间运行的应用程序可以进行内存性能优化。可以使用内存分析工具和性能分析工具来检测内存使用情况找出内存抖动的原因并针对性地进行优化。 进行定期的内存测试和性能评估定期进行内存测试和性能评估可以发现潜在的内存抖动问题并进行及时修复和优化。 三、案例分析 不同的工具有不同的使用场景对应线下场景我们先用 android studio自带的工具 3.1 使用memory-profiler 可以直观的展示内存使用情况我们先上一段代码来模拟内存申请及释放 public class MainActivity extends AppCompatActivity {// Used to load the example library on application startup.static {System.loadLibrary(example);}private static Handler mHandler new Handler() {Overridepublic void handleMessage(Message msg) {super.handleMessage(msg);// 循环1000次for (int index 0; index 1000; index){// 然后弄一个相对耗内存的操作制造内存抖动String args[] new String[1000000];}mHandler.sendEmptyMessageDelayed(0,50);}};private ActivityMainBinding binding;Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);binding ActivityMainBinding.inflate(getLayoutInflater());setContentView(binding.getRoot());// Example of a call to a native methodTextView tv binding.sampleText;tv.setText(stringFromJNI());tv.setOnClickListener(new View.OnClickListener() {Overridepublic void onClick(View v) {mHandler.sendEmptyMessageDelayed(0,2000);}});}/*** A native method that is implemented by the example native library,* which is packaged with this application.*/public native String stringFromJNI(); }代码运行后我们进行内存的保存快速查看Java 和 Kotlin 分配情况分析 通过上面的图我们可以看到在频繁的gc 那我们怎么才能知道内存抖动真正发生在哪里呢看上图string数组非常多我们点一下这个string数组如下图 上面就出现了一个Call Stack 标签页显示该实例被分配到何处以及在哪个线程中我们可以明显的看到 handlemessage 然后右键选择jump to source之间跳转到源码查看。 Allocations: 此类创建的实例对象数量 Total count对象在堆中未被回收的数量 3.2 使用 cpu-profiler 使用方式跟上面差不错我们保存文件然后查看 跟踪这一段CPU执行的时间 如果发现某一段应用自有函数的调用代码即绿色的条形段在反复地被执行便是内存抖动的地方 四、 推荐阅读 Java 专栏 SQL 专栏 数据结构与算法 Android学习专栏
http://www.hkea.cn/news/14341124/

相关文章:

  • 本机电脑怎么做网站免费网站申请域名com
  • 专业营销型网站建设费用郴州58网站
  • 北京天海网站建设公司平面设计师用的网站
  • 企业微信小程序登录入口关键词优化是什么意思?
  • 申请付费网站违法网站做网站的人会受罚嘛
  • 云南省建设工程造价管理协会网站怎样把网站做的更好
  • 海外seo网站建设手机网站和微信网站的区别
  • 承德市建设局网站温江做网站的公司
  • 加强网站建设的意见海南建设局相关网站
  • 企业网站优化哪家好顺德搜索seo网络推广
  • 上传网站安装教程视频教程优秀旅游网站设计
  • 住房和城乡建设部科技发展促进中心网站建筑企业
  • 网站申请服务器空间宜宾做网站公司
  • 网站开发的著作权归谁做一个网站的费用构成
  • 福州市网站建设站长网站素材
  • 网站开发难点分析设计公司logo需要多少钱
  • pc端网站开发建筑工程机械人才网
  • 广州万网建网站做外链的博客网站
  • 哈尔滨cms模板建站便宜网站建设模板网站
  • 公司制作网站需要百姓网二手拖拉机
  • 蓝韵官方网站海外酒店 网站建设
  • 承德的网站建设公司钢琴网站建设原则
  • 西安便宜的网站建设广告投放报价
  • 手机电脑网站排名seo是什么品牌衣服
  • 大米品牌推广方案seo推广员是做什么的
  • 网站不备案百度收录吗网站开发后期工作包括那两个部分
  • 咸宁响应式网站建设价格泰安哪个做网站
  • 网站可以叫做系统吗制作h5免费平台
  • 用mockplus做网站原型wordpress用户前端创建相册
  • 网站建设协议书范本建筑公司会计做账及报税流程