• ARTICLE
  • STRING
  • CONVERTER
  • ENCRYPT
  • NETWORK
  • MORE
    CHART
    MATH
    COORDINATE
    IMAGE
    FILE
  • ARTICLE
    STRING
    CONVERTER
    ENCRYPT
    NETWORK
    MORE
    CHART
    MATH
    COORDINATE
    IMAGE
    FILE
logo Online Tools
All Chinese English Newest Hottest
50 search results Contribute

无论是iOS还是Android系统的设备,在线上运行时受硬件、网络环境、代码质量等多方面因素影响,可能会导致性能问题,这一类问题有些在开发阶段是发现不了的。如何在线上始终为用户提供一个相对顺畅的用户体验,是客户端开发需要考虑的一个问题。

3 Technology lddgo Shared on 2024-04-18

视频起播时间,即首帧时间,是视频类应用的一个重要核心指标,也是影响用户观看体验的核心因素之一。如果视频要加载很久才能开始播放,用户放弃播放甚至离开 App 的概率都会增加。 视频秒播是指用户在起播时平滑播放,没有首屏的顿感,用户几乎感知不到有首帧时间的存在。 我们把从开始播放到视频首帧画面展现出来这个链路的耗时称为首帧耗时,想要优化首帧耗时,达到秒播效果,我们需要知道这个链路上,都进行了哪些步骤,然后找到其耗时点,进行针对性优化。不同的业务场景下,播放行为和播控策略不尽相同,最常见的就是冷启动场景、短视频场景、页面切换场景以及长视频场景。本文主要讨论具体业务场景下的优化实践,我们可以根据场景的特性,采取不同的优化策略。

1 Technology lddgo Shared on 2024-04-11

老版 Mac 使用 Intel 芯片,是x86_64架构,相应地在老版 Mac 上运行的模拟器使用的也就是 x86_64架构。 由于模拟器的 x86_64 架构与真机的 arm64、armv7 等架构不冲突,业界为了方便库文件管理,通常会将模拟器架构与真机架构通过 lipo 命令合并为一个 fat 文件。 对于 Intel 芯片的 Mac 这样处理就很高效合理的,但是 Apple 推出了 M 系列芯片的新版 Mac,这就导致模拟器也变成了 arm64 架构,同时 lipo 命令合并二进制文件时不允许出现同名的两个不同架构。也就是只要还采用通用二进制文件(fat 文件)的库管理方式,就无法同时使用真机 arm64 架构和模拟器 arm64 架构。

9 Technology lddgo Shared on 2024-03-28

目前大部分免费的三方APM平台限制较多,好用的又收费。在降本增效的大环境下,免费开源是开发者们的目标。因此开源的Sentry平台,在基础能力上已经满足了绝大多数开发场景。而对于想深入定制,打造自己APM平台的同学们来说,Sentry也是个可以依托并以此为基础进行改造的捷径。 本文将对Sentry Android SDK(6.31.0)进行源码解析,给大家一些改造拓展的思路。

9 Technology lddgo Shared on 2024-03-21

如今OpenResty已广泛被各个互联网公司在实际生产环境中应用,在保留Nginx高并发、高稳定等特性基础上,通过嵌入Lua来提升在负载均衡层的开发效率并保证其高性能。本文主要介绍接口鉴权、流量控制以及记录追踪几个工具在实际生产环境中的应用实践,用于解决实际业务问题,提升业务运维效率,对于Openresty基本原理不再赘述。

12 Technology lddgo Shared on 2024-03-14

LLM 以及移动平台落地趋势 搜狐AI引擎内建集成离线可运行的GPT模型 Keras 定制预训练模型 TensorFlow Lite converter 迁移到移动设备

18 Technology lddgo Shared on 2024-03-07

信息流个性化推荐场景中依赖爬虫抓取的海量新闻库,这些新闻中不乏互相抄袭的新闻,这些内容相似的文章,会造成内容的同质化并加重数据库的存储负担,更糟糕的是降低了信息流内容的体验。所以需要一种准确高效的文本去重算法。而最朴素的做法就是将所有文本进行两两比较,简单易理解,最符合人类的直觉,这种做法对于少量文本来说,实现起来很方便,但是对于海量文本来说是行不通的,所以应在尽可能保证准确性的同时,降低算法的时间复杂度。事实上,传统比较两个文本相似性的方法,大多是将文本分词之后,转化为特征向量距离的度量,比如常见的欧氏距离、海明距离或者余弦角度等等。下面以余弦相似度和simhash算法为例做简单介绍。

12 Technology lddgo Shared on 2024-02-29

DWARF全名是Debugging With Attribute Record Formats,是一种调试信息的存放格式。DWARF是一种通用的标准格式,很多编译器对其都有支持,并且DWARF支持C、OC、go等多种语言。 DWARF的作用是对机器码和代码之间进行一个映射关系,用来为调试器DEBUG提供调试信息,告诉调试器代码和二进制如何关联,在代码中添加一个断点后,在程序运行到什么位置要停下来。如果想开发一个Linux调试器,DWARF是必须要学的。除此之外,DWARF在发生崩溃时提供映射信息,对崩溃堆栈进行符号化。 对于iOS开发者来说,dSYM中主要就是DWARF文件,Xcode使用的LLVM和GCC编译器内核,对DWARF支持很好。通过xcodebuild archive命令打包时,在xcarchive产物中默认包含dSYM文件。 DWARF是一个压缩文件,可以通过dwarfdump相关命令进行信息提取,通过--debug-info命令可以打印解压后DWARF文件的内容。较大应用的dSYM不要轻易尝试,内容较多,建议找个小Demo打印看下。

12 Technology lddgo Shared on 2024-02-22

了解mach-o的结构可以帮助认识系统加载二进制文件的动态链接和静态链接。应用层面,使用initialize的c++函数计算启动时间耗时也需要以mach-o的结构知识为铺垫。还可以用在使用clang自注册启动任务上。后续会一一展开说明。

12 Technology lddgo Shared on 2024-02-01

首先说明一下,这篇文章是给具备Flutter开发经验的客户端同学看的。Flutter 的诞生虽然来自 Google 的 Chrome 团队,但大家都知道 Flutter 最先支持的平台是 Android 和 iOS,至今最核心的维护平台依然是 Android 和 iOS。由于 dart 语言的学习成本不高,Flutter 的响应式UI与 ComposeUI 和 SwiftUI 都有极大的相似之处,整体的架构思路也更偏向于客户端的模式,再加上为了实现很多硬件或 Native 相关的基础功能也需要专业的客户端开发知识,所以 Flutter 更多的是被客户端开发同学认可并使用(在我们的团队中,Flutter 已经是客户端开发同学的必备基本技能)。 在此背景下,Flutter 最初并不在 web 端上发力。不过由于 Flutter 本身就是携带了 web 的基因,在 Flutter2 发布的同时也发布了 web 的稳定版。那么它有什么优势和劣势呢?

14 Technology lddgo Shared on 2024-01-11