在当前技术飞速发展的时代,开发者面临着一个看似无法调和的难题:一边是有限的硬件与资源,另一边是无限增长的计算与业务需求。如何在秩序、效率和弹性之间做出明智的权衡,不仅是技术的考验,更是一门决策的艺术。本书,便是对这门艺术的思考与记录。 ...
当前文档为博主分析当前公司可观测性相关能力过程中痛点与架构的思考,希望能为广大博友带来一些架构帮助与借鉴 注:为避免企业信息泄漏相关信息会进行脱敏,如后续公司均以fsdm来代替,相关平台与技术细节做模糊与省略处理等。如有细节探讨可联系博主 一、背景与目标 分析fsdm当前可观测性建设现状,识别核心痛 ...
作者: vivo 互联网服务器团队- Zhang Jing 本文以游戏周周乐的幸运码为切入点,针对其生成过程中涉及的随机性、唯一性及高并发等特点,设计了一种基于号段+子码的创新架构。该方案不仅在生成速度上表现突出,还显著提升了存储效率,同时降低了扩容成本,为类似的号码生成系统提供了设计上的新思路和启 ...
DevEco Studio 的预览器可以提供高效的 UI 实时反馈,但要进行全面的功能测试、性能分析及硬件相关功能调试,仍需在模拟器或真机上运行应用。 ...
前言 DevEco Studio 是一款功能强大的开发工具,支持 ArkTS、JavaScript、TypeScript 等多种语言,具备智能代码补全、语法高亮、实时错误检查等特性,极大提升了鸿蒙应用的开发效率。本文将详细介绍 DevEco Studio 的代码阅读与编辑功能,帮助开发者更高效地进行 ...
前言 随着华为鸿蒙OS的快速发展,越来越多的开发者开始关注并投入到这个新兴的生态系统中。作为开发鸿蒙OS应用的第一步,安装并配置好DevEco Studio开发环境至关重要。本文将详细介绍如何下载、安装和初步配置DevEco Studio,帮助你快速进入鸿蒙应用开发的世界。 下载开发工具 访问华为官 ...
加速比的定义 加速比 如果使用n个内核,则 Speedup(n)为 T1 是一个内核的执行时间,Tn 是 n 个内核的执行时间。P1 是一个内核的性能,Pn 是 n 个内核的性能。 注意,Speedup(n)应大于 1。 效率 最大值为1 阿姆达尔定律(Amdahl's Law) 阿姆达尔定律是一个 ...
面向老板编程(Programming Oriented to Boss,POB)。面向领导编程不是消极对抗,而是在技术理性与管理艺术间寻找动态平衡的生存智慧。
正如Lunix之父Lunus Torvalds所说:"Talk is cheap. Show me the PPT." 在这个需求变幻莫测的... ...
写在前面 如题,这是一个真实存在的业务场景。在微服务体系的迭代过程中,会存在注册中心的切换,典型如从zookeeper迁移到nacos。 最近面试中,经常会用该场景来考察候选人(涉及RPC、分布式、场景也足够开放),结果能完整描述出来的人寥寥无几,于是整理一篇文章分享下。 遇到这类场景应该如何思考 ...
通常在Java Web开发初期,技术选型搭框架时,往往都针对选定好的一个库类型进行开发,比如oracle、sqlserver、mysql等,传统的mybatis都有固化的sql,如果要换个库,不同库类型的语法不同,就要重新适配修改sql,因此,持久层框架可以选用Hibernate,结合spring-... ...
本文介绍了UML中执行规范(Execution Specification)的概念、用法及其与激活状态的区别。文中通过多个示意图说明执行规范在同步消息、回调及复杂交互中的表现形式,并指出常见误解。最后,提供了实际建模建议,帮助读者准确表达系统行为语义,提升建模质量。 ...
本文阐述了UML序列图中消息的类型与特性。同步消息采用实心箭头实线表示,发送方需等待接收方返回虚线箭头标记的响应,但允许非阻塞等待;异步消息以V形箭头实线呈现,发送方无需等待且接收方须为活动类,适用于中断或Web交互场景;自消息既可同步也可异步,用于对象内部通信。消息可携带参数且需类型匹配,返回消息... ...
RabbitMQ 1、记一次线上RabbitMQ的堵塞问题 当时解决问题参考的文档:https://www.codenong.com/cs109484329/ 1、背景 RabbitMQ同步外省市运单到本系统中 2、问题 某天早上上班,发现运维群里有很多企业反馈,在系统中查不到自己最新的运单了,当时 ...
锚定效应的应用-独立站优化价格打折显示-《认知偏差手册》 先看结果:价格展示 https://atemplate.com/pricing 旧的打折价格展示 新的打折价格展示 锚定效应是什么? 人类在进行决策时,会过度偏重先前取得的资讯(这称为锚点),即使这个资讯与这项决定无关。在进行决策时,人类倾向 ...
“假设你负责的系统,某个业务线的QPS突然暴增100倍,你会怎么应对?” ——这是上周朋友去面试,被问到一道题,他答了“加机器扩容”,结果面试官眉头一皱:“如果机器不够呢?如果数据库崩了呢?”朋友当场卡壳。其实这道题就像“高压水枪”,专冲知识漏洞。 作为开发者,如果只回答“加机器”“扩容”,可能直接 ...
参与者是交互中的可连接元素,它不是类或对象,而是类型化的角色。生命线代表一个参与者按时间顺序排列的事件序列,从顶部到底部代表时间顺序。生命线可在交互过程中创建或终结。 ...
故事的开始是这样的:无聊的时候在阿里云买了一个99/年的服务,上面部署了一个Git服务,用于托管自己无聊时写的一些代码,顺便也拿它做开发服务器。为了方便应用管理,起初用docker来管理和部署应用,后来升级了一把,用上了docker-compose,毕竟跟手撕命令相比声明式部署更显科学,docker ...
UML扩展用例用于在基本用例中附加可选功能或后续新增逻辑。它通过«extend»关系将扩展用例与基本用例关联,方向由扩展用例指向基本用例。基本用例中可定义“扩展点”标识触发扩展的位置,扩展条件通过约束明确执行时机。扩展支持多层级结构,允许扩展用例自身被进一步扩展,形成用例扩展迭代链。该机制适用于灵活... ...
5 性能分析方法 当您正在进行高级优化时,例如将更好的算法集成到应用程序中,通常很容易看出性能是否提高,因为基准测试结果通常很明显。从性能分析的角度来看,2 倍、3 倍等大幅提速相对明显。当你从程序中删除大量计算时,你会期望看到运行时间的明显差异。 但同样,在某些情况下,当你看到执行时间的微小变化, ...
4 性能分析中的术语和指标 与许多工程学科一样,性能分析也大量使用特殊的术语和指标。对于初学者来说,查看 Linux perf 或 Intel VTune Profiler 等分析工具生成的配置文件可能会非常困难。这些工具使用了许多复杂的术语和指标,但是,如果你打算从事任何严肃的性能工程工作,这些指 ...