博客 / 列表

vivo互聯網技術 - 數字人動畫雲端渲染方案

作者:vivo 互聯網前端團隊 - Su Ning 為解決擬我形象在多場景展示中依賴 3D 渲染導致的性能與接入問題,本文提出將形象預先導出為視頻或動圖資源。對比三種技術路徑後,最終選擇 Puppeteer + H5 渲染幀 + FFmpeg 合成視頻 的方案,實現了渲染效果一致、服務端批量處理和低接入成本,為擬我形象的規模化應用提供了高效可擴展的技術基礎。 1分鐘看圖掌握核心觀點_👇_

puppeteer , ffmpeg , 前端

vivo互聯網技術 - vivo Celeborn PB級Shuffle優化處理實踐

作者: vivo 互聯網大數據團隊-Wang Zhiwen、Cai Zuguang vivo大數據平台通過引入RSS服務來滿足混部集羣中間結果(shuffle 數據)臨時落盤需求,在綜合對比後選擇了Celeborn組件,並在後續的應用實踐過程中不斷優化完善,本文將分享vivo在Celeborn實際應用過程中對遇到問題的分析和解決方案,用於幫助讀者對相似問題進行參考。 1分鐘看圖掌握核心觀點

大數據 , shuffle , RSS

vivo互聯網技術 - 從不足到精進:H5即開並行加載方案的演進之路

作者: vivo 互聯網客户端團隊- Chen Long 並行加載是 H5 即開 SDK 的加速技術,通過 native 層在用户打開頁面時並行請求關鍵資源(如 index.html 和 CSR 模式 API),利用 webview 初始化時間窗口提前發起請求,減少加載耗時。其核心挑戰是解決 webview 與並行任務間的資源交接問題。 1分鐘看圖掌握核心觀點👇 一、並行加載能力核心解

客户端 , webview , 前端 , html5

vivo互聯網技術 - 淺談 AI 搜索前端打字機效果的實現方案演進

作者:vivo 互聯網前端團隊 - He Yanjun 在當代前端開發領域,打字機效果作為一種極具創造力與吸引力的交互元素,被廣泛運用於各類網站和應用程序中,為用户帶來獨特的視覺體驗和信息呈現方式,深受廣大用户的喜愛。 本文將深入介紹在AI搜索輸出響應的過程中,打字機效果是怎樣逐步演進的。力求以通俗的語言和嚴謹的思路深入剖析打字機效果在不同階段的關鍵技術難點和優劣勢。 1分鐘看圖掌握核心

虛擬dom , HTML , 前端 , Javascript

vivo互聯網技術 - Android動效探索:徹底弄清如何讓你的視頻更加酷炫

作者: vivo 互聯網客户端團隊- Xu Jie 在Android移動端視頻處理領域,除了基本的播放功能外,添加動畫和濾鏡等特效已經成為提升用户體驗的重要手段。然而,很多開發人員可能對於實現這些功能所需的技術細節感到困惑。因此,本文旨在提供一個詳細的指導,幫助開發人員掌握如何使用開源MediaPlayer或自定義播放器,並利用OpenGL ES來實現視頻動畫和濾鏡效果。 1分鐘看圖掌握核

跨平台 , opengl-es , Android , MediaPlayer , ffmpeg

vivo互聯網技術 - Flink 的 RocksDB 狀態後端在 vivo 的實踐

作者: 互聯網大數據團隊- Chen Rui 本文簡要介紹了特徵拼接在實時推薦中的重要作用,並講述了vivo實時推薦系統中特徵拼接模塊的架構演進過程以及採用現有的“基於RocksDB的大狀態解決方案”的原因,重點敍述了該方案所遇到的一系列問題,包括TM Lost、RocksDB性能調優門檻高、TM初始化慢、狀態遠程存儲HDFS RPC飆高等,並給出了這些問題的現象以及解決方案。 1分鐘看圖

大數據 , 推薦系統 , 內存泄漏 , RocksDB

vivo互聯網技術 - 從0到1實現:AI版你畫我猜小遊戲

作者: vivo 互聯網前端團隊- Wei Xing 全民AI時代,前端er該如何蹭上這波熱度?本文將一步步帶大家瞭解前端應該如何結合端側AI模型,實現一個AI版你畫我猜小遊戲。 1分鐘看圖掌握核心觀點👇 本文提供配套演示代碼,可下載體驗: Github | vivo-ai-quickdraw 一、引言 近幾年AI的進化速度堪比科幻片——昨天還在調教ChatGPT寫詩,今天Sora已經

tensorflow.js , cnn , 人工智能 , 前端

vivo互聯網技術 - 前端 JS 安全對抗原理與實踐

作者:vivo 互聯網安全團隊- Luo Bingsong 前端代碼都是公開的,為了提高代碼的破解成本、保證JS代碼裏的一些重要邏輯不被居心叵測的人利用,需要使用一些加密和混淆的防護手段。 一、概念解析 1.1 什麼是接口加密 如今這個時代,數據已經變得越來越重要,網頁和APP是主流的數據載體,如果獲取數據的接口沒有設置任何的保護措施的話,數據就會被輕易地竊取或篡改。 除了數據泄露外,一些重要功能

混淆 , 調試 , 前端 , Javascript

vivo互聯網技術 - 高性能無鎖隊列 Disruptor 核心原理分析及其在i主題業務中的應用

作者:來自 vivo 互聯網服務器團隊- Li Wanghong 本文首先介紹了 Disruptor 高性能內存隊列的基本概念、使用 Demo、高性能原理及源碼分析,最後通過兩個例子介紹了 Disruptor 在i主題業務中的應用。 一、i主題及 Disruptor 簡介 i主題是 vivo 旗下的一款主題商店 app,用户可以通過下載主題、壁紙、字體等,實現對手機界面風格的一鍵更換和自定義。 D

內存 , 緩存 , 隊列

vivo互聯網技術 - 一次基於AST的大規模代碼遷移實踐

作者:來自 vivo 互聯網大前端團隊- Wei Xing 在研發項目過程中,我們經常會遇到技術架構迭代更新的需求,通過技術的迭代更新,讓項目從新的技術特性中受益,但由於很多新的技術迭代版本並不能完全向下兼容,包含了很多非兼容性的改變(Breaking Changes),因此我們需要設計一款工具,幫助我們完成大規模代碼自動遷移問題。本文簡單闡述了基於 AST 的代碼遷移概念和大致流程,並通過代碼案

ast , 代碼遷移 , 抽象語法樹 , postcss , Javascript

vivo互聯網技術 - NLLB 與 ChatGPT 雙向優化:探索翻譯模型與語言模型在小語種應用的融合策略

作者:來自 vivo 互聯網算法團隊- Huang Minghui 本文探討了 NLLB 翻譯模型與 ChatGPT 在小語種應用中的雙向優化策略。首先介紹了 NLLB-200 的背景、數據、分詞器和模型,以及其與 LLM(Large Language Model)的異同和協同關係。接着列舉了實戰與應用的案例,包括使用 ChatGPT 生成的樣本微調 NLLB-200 和使用 NLLB-200 的

llm , chatgpt , 人工智能 , 翻譯

vivo互聯網技術 - 基於 Three.js 的 3D 模型加載優化

作者:來自 vivo 互聯網前端團隊- Su Ning 作為一個3D的項目,從用户打開頁面到最終模型的渲染需要經過多個流程,加載的時間也會比普通的H5項目要更長一些,從而造成大量的用户流失。為了提升首屏加載的轉化率,需要儘可能的降低loading的時間。這裏就分享一些我們在模型加載優化方面的心得。 一、前言 近段時間,我們使用three.js完成了vivo擬我形象的開發工作,大家可以在vivo賬號

rust , three.js , webassembly , 3d

vivo互聯網技術 - Android模塊化開發實踐

一、前言 隨着業務的快速發展,現在的互聯網App越來越大,為了提高團隊開發效率,模塊化開發已經成為主流的開發模式。正好最近完成了vivo官網App業務模塊化改造的工作,所以本文就對模塊化開發模式進行一次全面的介紹,並總結模塊化改造經驗,幫助兄弟項目避坑。 二、什麼是模塊化開發 首先我們搞清兩個概念,Android客户端開發目前有兩種模式:單工程開發模式和模塊化開發模式。 單工程開發模式:早期業

項目實戰 , 架構 , Android , 模塊化開發

vivo互聯網技術 - 如何“拼”出一個頁面-遊戲中心模塊化實踐

一、背景 vivo遊戲中心是一款垂類的應用商店,為用户提供了多元化遊戲的下載渠道。隨着遊戲中心手遊品類的豐富,各品類用户的量級也不斷增加,不同遊戲偏好的用户核心關注點也不同,從預約、測試、首發、更新到維護,不同遊戲生命週期節點的運營需要突出的重點不同。 針對上述不同業務場景,運營人員為了服務好廣大的vivo遊戲用户,需要進行精細化運營,以不同的視覺樣式呈現給不同用户。比如,針對獨立遊戲品類的用户,

開發 , 組件化 , 模塊化開發

vivo互聯網技術 - Tars-Cpp 協程實現分析

作者:vivo 互聯網服務器團隊- Ye Feng 本文介紹了協程的概念,並討論了 Tars Cpp 協程的實現原理和源碼分析。 一、前言 Tars 是 Linux 基金會的開源項目(https://github.com/TarsCloud),它是基於名字服務使用 Tars 協議的高性能 RPC 開發框架,配套一體化的運營管理平台,並通過伸縮調度,實現運維半托管服務。Tars 集可擴展協議編解碼、

協程 , tars

vivo互聯網技術 - vivo Pulsar 萬億級消息處理實踐(2)-從0到1建設 Pulsar 指標監控鏈路

作者:vivo 互聯網大數據團隊- You Shuo 本文是《vivo Pulsar萬億級消息處理實踐》系列文章第2篇,Pulsar支持上報分區粒度指標,Kafka則沒有分區粒度的指標,所以Pulsar的指標量級要遠大於Kafka。在Pulsar平台建設初期,提供一個穩定、低時延的監控鏈路尤為重要。 系列文章: 《vivo Pulsar萬億級消息處理實踐-數據發送原理解析和性能調優

大數據 , 消息隊列 , kafka , pulsar

vivo互聯網技術 - vivo Pulsar 萬億級消息處理實踐(3)-KoP指標異常修復

作者:vivo 互聯網大數據團隊- Chen Jianbo 本文是《vivo Pulsar萬億級消息處理實踐》系列文章第3篇。 Pulsar是Apache基金會的開源分佈式流處理平台和消息中間件,它實現了Kafka的協議,可以讓使用Kafka API的應用直接遷移至Pulsar,這使得Pulsar在Kafka生態系統中更加容易被接受和使用。KoP提供了從Kafka到Pulsar的無縫轉換,

大數據 , JAVA , 消息隊列 , kafka , pulsar

vivo互聯網技術 - vivo 海量微服務架構最新實踐

作者:來自 vivo 互聯網中間件團隊 本文根據羅亮老師在“2023 vivo開發者大會"現場演講內容整理而成。公眾號回覆【2023 VDC】獲取互聯網技術分會場議題相關資料。 vivo微服務平台為全球5億+用户背後的全網十萬級機器、萬級微服務提供服務,在高效實踐過程中,vivo中間件平台團隊輸出了一套業務適用的微服務架構最佳實踐--架構能力矩陣、高效的開源中間件組件全生命週期管理策略,走出了一條

中間件 , 微服務 , 開源

vivo互聯網技術 - vivo Pulsar 萬億級消息處理實踐(4)-Ansible運維部署

作者:Liu Sikang、互聯網大數據團隊-Luo Mingbo Pulsar作為下一代雲原生架構的分佈式消息中間件,存算分離的架構設計能有效解決大數據場景下分佈式消息中間件老牌一哥"Kafka"存在的諸多問題,2021年vivo 分佈式消息中間件團隊正式開啓對Pulsar的調研,2022年正式引入Pulsar作為大數據場景下的分佈式消息中間件,本篇文章主要從Pulsar運維痛點、Ansi

中間件 , 大數據 , 運維自動化 , ansible , pulsar

vivo互聯網技術 - 基於three.js的虛擬人陰影渲染優化方案

作者:來自 vivo 互聯網大前端團隊- Su Ning 本文將探討 three.js 中的陰影渲染機制,並分享一些針對性能和效果優化的實用技巧,幫助開發者在不同場景下做出最佳的權衡選擇。 一、前言 在3D網頁應用中,高質量的陰影渲染對於營造場景的真實感至關重要。作為廣泛採用的 WebGL 框架之一,three.js 為開發者提供了多種陰影渲染選項,使得創建生動逼真的光影效果成為可能。然而,實現這

three.js , web3 , 前端

vivo互聯網技術 - 擁抱新一代 Web 3D 引擎,Three.js 項目快速升級 Galacean 指南

作者: vivo 互聯網前端團隊- Su Ning 本文從多個維度對比 Galacean 和 Three.js 兩款Web3D 引擎的差異,並介紹擬我形象項目從Three.js 切換到 Galacean 以後帶來的提升以及項目遷移的心得,為其他 Three.js 項目升級到 Galacean 提供參考。 1分鐘看圖掌握核心觀點👇 一、背景 Web 3D 技術的發展日新月異,為我們帶來了

three.js , 前端

vivo互聯網技術 - 線上ES集羣參數配置引起的業務異常案例分析

作者:vivo 互聯網數據庫團隊- Liu Huang 本文介紹了一次排查Elasticsearch node_concurrent_recoveries 引發的性能問題的過程。 一、故障描述 1.1 故障現象 1. 業務反饋 業務部分讀請求拋出請求超時的錯誤。 2. 故障定位信息獲取 故障開始時間 19:30左右開始 故障拋出異常日誌 錯誤日誌拋出timeout錯誤。 故障之前的

elasticsearch , 性能

vivo互聯網技術 - 主打一個“小巧靈動”:Vite + Svelte

作者:來自 vivo 互聯網大前端團隊- Wei Xing 在研發小型項目時,傳統的 Vue、React 顯得太“笨重”。本文主要針對開發小型項目的場景,談談 Vite+Svelte 是如何讓項目變得“小巧靈動”,並橫向對比 Svelte 和 Vue 的性能表現,對二者的加載流程做詳細分析。 一、背景 為了統一技術標準、提升協作效率,通常在前端團隊內部只會保留一套通用的研發框架。尤其是在團隊初創時

svelte , vite , 性能

vivo互聯網技術 - FunProxy - 使用 Rust 構建跨平台全鏈路測試抓包代理工具

作者:vivo 互聯網大前端團隊- Song Jiachao 在軟件開發過程中,軟件測試對於保障軟件質量和用户滿意度起着關鍵作用。為最大程度上提升軟件品質,我們積極開展全鏈路測試實踐,打造了用Rust語言開發的自研一站式抓包代理工具FunProxy,基於其跨平台、高性能、易於擴展、安全性高等特性,讓全鏈路抓包和環境代理如絲綢般絲滑。 一、背景介紹 1.1 什麼是全鏈路測試 全鏈路測試就是"

工具 , 效率 , rust , 測試 , 前端