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

在哪里可以做公司网站营销背景包括哪些内容

在哪里可以做公司网站,营销背景包括哪些内容,网站制作b s的基本步骤,马卡龙网站建设方案一、使用purgeable优化C内存 Purgeable Memory是HarmonyOS中native层常用的内存管理机制,可用于图像处理的Bitmap、流媒体应用的一次性数据、图片等。应用可以使用Purgeable Memory存放其内部的缓存数据,并由系统根据淘汰策略统一管理全部的purgeable内存…

一、使用purgeable优化C++内存
Purgeable Memory是HarmonyOS中native层常用的内存管理机制,可用于图像处理的Bitmap、流媒体应用的一次性数据、图片等。应用可以使用Purgeable Memory存放其内部的缓存数据,并由系统根据淘汰策略统一管理全部的purgeable内存。当系统内存不足时,系统可以通过丢弃purgeable内存快速回收内存资源,以释放更多的内存资源给其他应用程序使用,实现全局高效的缓存数据管理。这种机制可以帮助系统更有效地管理内存,提高系统的稳定性和流畅性。
在使用Purgeable内存时,开发者可以调用接口释放Purgeable内存,但需要注意在适当的时机释放Purgeable内存,以确保内存资源能够得到有效管理,避免内存占用过高导致的性能问题和内存泄漏的情况。通过合理使用Purgeable内存,开发者可以更好地管理应用程序的内存,提高用户体验。
(一)原理介绍
Purgeable内存访问流程图如下图所示,在访问Purgeable内存时,首先需要判断当前Purgeable内存的数据是否已经被回收,如果Purgeable内存已经被回收了,那么需要先重建数据再使用。在访问Purgeable内存的数据时,Purgeable内存对应的引用计数refcnt加1,在访问Purgeable结束后,其引用计数refcnt会减1,当引用计数为0的时候,该Purgeable内存可以被系统回收。
图2 Purgeable内存访问流程图
 

HarmonyOS优化应用内存占用问题性能优化四-鸿蒙开发者社区


Purgeable内存回收流程图如下所示,当引用计数为0时,丢弃掉Purgeable内存中的数据,并标识Purgeable内存已回收。
图3 Purgeable内存回收流程图
 

HarmonyOS优化应用内存占用问题性能优化四-鸿蒙开发者社区


(二)参考案例
在CMakeLists.txt文件中引入Purgeable对应的动态链接库libpurgeable_memory_ndk.z.so,具体如下所示:

# the minimum version of CMake.
cmake_minimum_required(VERSION 3.4.1)
project(MyNativeApplication)
set(NATIVERENDER_ROOT_PATH ${CMAKE_CURRENT_SOURCE_DIR})
if(DEFINED PACKAGE_FIND_FILE)include(${PACKAGE_FIND_FILE})
endif()
include_directories(${NATIVERENDER_ROOT_PATH}${NATIVERENDER_ROOT_PATH}/include)
add_library(entry SHARED napi_init.cpp)
# 引入libpurgeable_memory_ndk.z.so动态链接库
target_link_libraries(entry PUBLIC libace_napi.z.so libpurgeable_memory_ndk.z.so)

    引入purgeable_memory头文件,并声明创建PurgeableMemory对象需要使用的ModifyFunc函数,调用OH_PurgeableMemory_Create创建PurgeableMemory对象。
    在读取PurgeableMemory对象的内容时,需要调用OH_PurgeableMemory_BeginRead,读取结束时,需要调用OH_PurgeableMemory_EndRead。其中,OH_PurgeableMemory_GetContent可以获取PurgeableMemory对象的内存数据。
    在修改PurgeableMemory对象的内容时,需要调用OH_PurgeableMemory_BeginWrite,读取结束时,需要调用OH_PurgeableMemory_EndWrite。其中,OH_PurgeableMemory_AppendModify可以更新PurgeableMemory对象重建规则。

    #include "napi/native_api.h"
    #define DATASIZE (4 * 1024 * 1024)
    #include "purgeable_memory/purgeable_memory.h"bool ModifyFunc(void *data, size_t size, void *param) {data = param;return true;
    }
    // 业务定义对象类型
    class ReqObj;
    static napi_value Add(napi_env env, napi_callback_info info)
    {size_t requireArgc = 2;size_t argc = 2;napi_value args[2] = {nullptr};napi_get_cb_info(env, info, &argc, args , nullptr, nullptr);napi_valuetype valuetype0;napi_typeof(env, args[0], &valuetype0);napi_valuetype valuetype1;napi_typeof(env, args[1], &valuetype1);double value0;napi_get_value_double(env, args[0], &value0);double value1;napi_get_value_double(env, args[1], &value1);double result = value0 + value1;// 创建一个PurgeableMemory对象OH_PurgeableMemory *pPurgmem = OH_PurgeableMemory_Create(DATASIZE, ModifyFunc, &result);// 读取对象OH_PurgeableMemory_BeginRead(pPurgmem);// 获取PurgeableMemory对象大小size_t size = OH_PurgeableMemory_ContentSize(pPurgmem);// 获取PurgeableMemory对象内容ReqObj *pReqObj = (ReqObj *)OH_PurgeableMemory_GetContent(pPurgmem);// 读取PurgeableMemory对象结束OH_PurgeableMemory_EndRead(pPurgmem);// 修改PurgeableMemory对象OH_PurgeableMemory_BeginWrite(pPurgmem);// 声明扩展创建函数的参数double newResult = value0 + value0;// 更新PurgeableMemory对象重建规则OH_PurgeableMemory_AppendModify(pPurgmem, ModifyFunc, &newResult);// 修改PurgeableMemory对象结束OH_PurgeableMemory_EndWrite(pPurgmem);// 销毁对象OH_PurgeableMemory_Destroy(pPurgmem);napi_value sum;napi_create_double(env, result, &sum);return sum;
    }
    EXTERN_C_START
    static napi_value Init(napi_env env, napi_value exports)
    {napi_property_descriptor desc[] = {{ "add", nullptr, Add, nullptr, nullptr, nullptr, napi_default, nullptr }};napi_define_properties(env, exports, sizeof(desc) / sizeof(desc[0]), desc);return exports;
    }
    EXTERN_C_ENDstatic napi_module demoModule = {.nm_version = 1,.nm_flags = 0,.nm_filename = nullptr,.nm_register_func = Init,.nm_modname = "entry",.nm_priv = ((void*)0),.reserved = { 0 },
    };
    extern "C" __attribute__((constructor)) void RegisterEntryModule(void)
    {napi_module_register(&demoModule);
    }

      二、使用合理尺寸的图片优化应用内存
      (一)原理介绍
      应用在定义界面时,对于使用不同类型的组件,需要绘制不同的内容。图片组件主要用来加载和显示图片,而组件本身也需要占用内存。ArkTS目前采用引用计数的机制来管理内存。引用计数是一种简单而高效的内存管理方式,它通过记录每个对象被引用的次数来确定何时释放对象。需要注意的是,如果组件没有正确释放,即使其他地方不再使用该组件,对应的引用链接上的资源也不会被释放,可能会导致内存泄漏问题。
      一张全屏的图片,不同分辨率的内存占用大小如下:
       

      HarmonyOS优化应用内存占用问题性能优化四-鸿蒙开发者社区


      由上图可以看出,对于一些页面多、图片多、效果多的资源密集型应用,内存很容易达到较高水平。当应用的内存占用超过系统设定的阈值(如4G,其中4G只是示例,不同系统的阈值不同)时,系统可能会认为应用存在严重的内存问题,并可能会强制杀死该应用进程,以保证设备系统的稳定性和性能。为了避免应用被系统杀死,开发者可以考虑以下两点:
      优化资源使用:通过合理设置图片源文件大小,合理使用内存资源,减少图片所占应用内存。
      布局优化:通过减少布局嵌套层级,减少过度绘制可以产生较大的性能收益。
      本章节主要指导开发者通过合理设置图片源文件大小,合理使用内存资源,减少图片所占应用内存。
      (二)避免加载超过显示尺寸的图片

      如上代码示例中,使用500500尺寸大小的Image组件加载一张尺寸为40323024的RGBA格式图片时(每个像素占用4个字节),图片申请了约46.5M的内存。这是因为图片的原始尺寸较大,加载到Image组件中时需要将其缩放到500500的尺寸,这个过程会占用一定的内存空间。
      可使用公式计算出来纹理图片内存大小 = imageWidth x imageHeight x format(4032
      3024 * 4 = 48771072 bytes ≈ 46.5M)。
      但是实际上,组件只需要500500的尺寸。也就是说,实际需要的内存 = 500500*4 ≈ 1M。
       

      HarmonyOS优化应用内存占用问题性能优化四-鸿蒙开发者社区


      因此当一张图片比控件显示的区域要大,最终会被裁剪或者缩放。大量的裁剪和缩放不仅导致视图效果变差,还会浪费内存,引起严重的功耗问题。为了最大程度地节省内存,开发者可以手动调整源文件的尺寸大小,使其与组件的大小保持一致。这样可以避免不必要的内存浪费,并提高应用程序的性能和效率。开发者可以使用图像处理工具来调整图像的尺寸大小,从而进一步节省内存空间。

      本文主要引用参考HarmonyOS官方文档

      http://www.dtcms.com/wzjs/276510.html

      相关文章:

    • 男女做羞羞羞的网站长春seo外包
    • 做php门户网站那个系统好搜图片找原图
    • 建设工程网站什么时候可以同步seo专员是什么职位
    • 室内设计可以去哪些公司seo网络优化推广
    • 做cad模板下载网站外链网站大全
    • 提升网站建设seo公司上海牛巨微
    • 网站建设款如何入账seo教程视频论坛
    • 购物网站销售管理长沙本地推广
    • 坪山新区城市建设局网站网站关键词优化
    • 怎么制作网站教程云南网站建设公司哪家好
    • 下载网站建设百度应用下载
    • 怎样健建设一个有利于优化的网站app推广方式
    • 公司建设网站的必要性怎么在百度上做网站
    • 如何鉴别建设银行网站真伪地推团队接单平台
    • 做淘宝客网站好搭建吗?网站seo关键词排名查询
    • 58同城类似的网站开发百度网盘搜索引擎入口官网
    • 网站群管理平台登封网站设计
    • 网站超市源码seo排名优化北京
    • 蓝海国际版网站建设系统深圳市社会组织总会
    • 一些大型网站的服务器需要租用多大的带宽企业查询软件
    • 中山做营销型网站免费招收手游代理
    • php网站怎么做seo怎样做好竞价推广
    • 本地电脑做视频网站 外网连接关键词seo深圳
    • 党建网站建设现状关键词优化seo排名
    • qq空间的网站如何把一个关键词优化到首页
    • 成都建立网站的公司网站长沙哪里有网站推广优化
    • 南京做网站建设的公司哪家好站长工具seo优化系统
    • 公司网站应该是市场部做吗企业网络营销推广方案
    • 唐山网站建设学徒网站发帖推广平台
    • 海宁市住房与城乡规划建设局网站足球直播在线直播观看免费cctv5