在浅析 MCP 原理之前,有必要搞清楚两个问题:MCP 是什么?为什么会出现?以此明晰它存在的价值和意义。 首先,MCP(Model Context Protocol,模型上下文协议)是由人工智能公司 Anthropic 主导推出的一种开放标准协议,旨在统一大型语言模型(LLM)与外部数据源、工具及服务之间的交互方式。该协议通过JSON-RPC 2.0 标准消息格式定义通信规则,使模型能像使用"万能接口"(类比 Type-C 接口)一样即插即用地连接异构资源。
作为新一代品质生活购物社区,得物App以正品电商和品质生活社区作为两大核心服务。成立十年来,它始终致力于帮助用户得到美好生活,已成为年轻用户重要的潮流阵地与品质生活购物平台。 得物在坚持严格的选品标准、专业的查验鉴别、统一的履约交付等服务的同时,尊重和保护个人信息,并不断完善个人信息保护建设,《得物个人信息保护社会责任报告》将公开展示得物在个人信息保护建设所做的持续努力,为用户提供更安全放心的服务和购物体验。
最近在项目中遇到了页面加载速度优化的问题,为了提高秒开率等指标,我决定从eebi报表入手,分析一下当前项目的性能监控体系。 通过查看报表中的cost_time、is_first等字段,我开始了解项目的性能数据采集情况。为了更好地理解这些数据的含义,我深入研究了相关SDK的源码实现。 在分析过程中,我发现采集到的cost_time参数实际上就是FMP(First Meaningful Paint)指标。于是我对FMP的算法实现进行了梳理,了解了它的计算逻辑。 本文将分享我在性能优化过程中的一些思考和发现,希望能对关注前端性能优化的同学有所帮助。
Dragonboat 是纯 Go 实现的(multi-group)Raft 库。 为应用屏蔽 Raft 复杂性,提供易于使用的 NodeHost 和状态机接口。该库(自称)有如下特点:高吞吐、流水线化、批处理;提供了内存/磁盘状态机多种实现;提供了 ReadIndex、成员变更、Leader转移等管理端API;默认使用 Pebble 作为 存储后端。 本次代码串讲以V3的稳定版本为基础,不包括GitHub上v4版本内容。
做数据前端,你会很快建立一个共识: 怎样把枯燥的数字用合适的方式展示出来,是我们的第一要务,但这只是起点。 如果说规范的数字排版是中后台系统的“地基”,保证了信息的准确传达;那么可视化图表就是地基之上的“建筑”。地基稳固,建筑才能发挥其功能——让用户从微观的读数中解放出来,更快速地识别趋势、定位异常,从而真正从数据中获取规律。 但这篇主要想聊的,不是那座“建筑”,而是这块往往被忽视,却决定了整个系统专业度的“地基”——数字格式化。
在需求迭代开发过程中,有测试团队的小伙伴反馈在 RN 页面 偶尔会出现 crash,且堆栈只有一行,指向了MMKV,看完之后一头雾水,为什么 RN 页面会出现 MMKV的 crash,而且堆栈为什么只有一行,其实这些都和 unwind 有直接和间接的关系。就此问题而言,虽然 crash 平台的堆栈只有一行,但是通过抓取到的墓碑文件,可以看到此问题和 __gxx_personality_v0 相关。自 RN 升级到 0.72.5 版本之后,已经是第三次出现和 __gxx_personality_v0 相关的 crash。 为什么 crash 堆栈只有一行?为什么 RN 的 crash 会指向MMKV?让我们带着这些疑问来详细了解一下unwind。
得物DBA自2020年初开始自建TiDB,5年以来随着NewSQL数据库迭代发展、运维体系逐步完善、产品自身能力逐步提升,接入业务涵盖了多个业务线和关键场景。从第一套TIDB v4.0.9 版本开始,到后来v4.0.11、v5.1.1、v5.3.0,在经历了各种 BUG 踩坑、问题调试后,最终稳定在 TIDB 5.3.3 版本。伴随着业务高速增长、数据量逐步增多,对 TiDB 的稳定性及性能也带来更多挑战和新的问题。为了应对这些问题,DBA团队决定对 TiDB 进行一次版本升级,收敛版本到7.5.x。本文基于内部的实践情况,从架构、新特性、升级方案及收益等几个方向讲述 TiDB 的升级之旅。