【萬字總結】前端全方位性能優化指南(完結篇)——自適應優化系統、遺傳算法調參、Service Worker智能降級方案

前言

自適應進化宣言

當監控網絡精準定位病灶,真正的挑戰浮出水面:系統能否像生物般自主進化?
五維感知——通過設備傳感器實時捕獲環境指紋(如地鐵隧道弱光環境自動切換省電渲染)
基因調參——150個性能參數在遺傳算法中實現達爾文式競爭,CDN選型效率提升4400倍
離線覺醒——Service Worker在斷網瞬間接管核心功能
這不僅是技術升級,更宣告著軟件從「精密機械」向「有機生命體」的范式躍遷。你的系統,即將學會呼吸。

第十章自適應優化系統

第一節 五維環境感知:設備/網絡/電量/光線/地理動態適配

1.1)環境感知的核心邏輯

現代前端應用需實時感知用戶環境特征,通過設備性能、網絡狀態、電池電量、光線強度、地理位置五個維度的動態檢測,實現資源加載、渲染策略、交互設計的智能適配。其技術框架如下:

環境檢測
五維參數
設備能力分級
網絡帶寬評估
電量剩余預測
光線強度分析
地理圍欄觸發
優化策略決策
資源加載
渲染降級
交互簡化

1.2) 設備能力分級與優化

(1)設備性能檢測

  1. ?硬件參數采集

    // 檢測GPU能力  
    const gl = document.createElement('canvas').getContext('webgl');  
    const gpuInfo = gl ? gl.getParameter(gl.RENDERER) : 'unknown';  // CPU核心數  
    const cpuCores = navigator.hardwareConcurrency || 4;  // 內存容量預測(非精確)  
    const deviceMemory = navigator.deviceMemory || 4; // 單位:GB  
    
  2. ?設備分級策略

    設備等級CPU核心數內存容量GPU能力優化措施
    高端≥8≥8GB獨立顯卡4K資源加載,開啟WebGL 2.0
    中端4-74-7GB集成顯卡2K資源,啟用硬件加速
    低端≤3≤3GB無GPU支持480P資源,禁用復雜動畫

(2)實戰代碼:動態加載策略

function getDeviceLevel() {  const score = cpuCores * 0.3 + deviceMemory * 0.5 + (gpuInfo.includes('GPU') ? 2 : 0);  return score >= 6 ? 'high' : score >= 3 ? 'mid' : 'low';  
}  const deviceLevel = getDeviceLevel();  // 按設備等級加載資源  
const imageSrc = {  high: 'image-4k.webp',  mid: 'image-2k.webp',  low: 'image-480p.jpg'  
}[deviceLevel];  const img = new Image();  
img.src = imageSrc;  

1.3)網絡狀態動態適配

(1)網絡帶寬檢測

  1. ?Network Information API

    const connection = navigator.connection || navigator.mozConnection;  
    const { type, effectiveType, downlink, rtt } = connection;  // 網絡類型分級  
    const networkLevel =   downlink > 5 ? '5g' :  downlink > 2 ? '4g' :  effectiveType.includes('3g') ? '3g' : '2g';  
    
  2. ?帶寬預測算法

    // 基于歷史數據的帶寬滑動平均  
    let bandwidthHistory = [];  
    function updateBandwidth() {  bandwidthHistory.push(downlink);  if (bandwidthHistory.length > 5) bandwidthHistory.shift();  return bandwidthHistory.reduce((a, b) => a + b, 0) / bandwidthHistory.length;  
    }  
    

(2)網絡優化策略對比

網絡狀態預加載策略資源壓縮級別長連接復用
5G/4G全量預加載無損
3G首屏預加載70%質量
2G按需加載50%質量

1.4) 電量敏感型優化

(1) 電池狀態檢測

  1. ?Battery Status API

    navigator.getBattery().then(battery => {  const { charging, level, chargingTime, dischargingTime } = battery;  // 電量消耗速率  const drainRate = (1 - level) / (dischargingTime / 3600); // 每小時耗電百分比  
    });  
    
  2. ?電量分級與策略

    電量區間狀態優化措施
    ≤20%危急禁用后臺同步,關閉WebSocket
    20%-50%低電量降低幀率至30fps,暫停非必要動畫
    ≥50%安全全功能啟用

(2) 實戰代碼:節電模式

function enablePowerSaveMode() {  // 降低渲染負載  document.body.style.setProperty('--animation-duration', '0.3s');  // 關閉后臺任務  if ('serviceWorker' in navigator) {  navigator.serviceWorker.getRegistrations().then(registrations => {  registrations.forEach(reg => reg.unregister());  });  }  
}  battery.addEventListener('levelchange', () => {  if (battery.level < 0.2 && !battery.charging) {  enablePowerSaveMode();  }  
});  

1.5) 光線自適應界面

(1)環境光檢測

  1. ?Ambient Light Sensor API

    try {  const sensor = new AmbientLightSensor();  sensor.onreading = () => {  const lux = sensor.illuminance;  // 光線強度分級  const lightLevel = lux > 1000 ? 'sunlight' : lux > 100 ? 'indoor' : 'dark';  };  sensor.start();  
    } catch (error) {  console.log('環境光傳感器不可用');  
    }  
    
  2. ?UI適配規則

    光線條件亮度調節對比度色彩方案
    強光+30%亮度高對比度深色模式
    室內默認亮度標準對比度自動模式
    黑暗-20%亮度低對比度深色模式

(2) 實戰代碼:動態主題切換

function adjustThemeBasedOnLight(lux) {  const root = document.documentElement;  if (lux > 1000) {  root.style.setProperty('--background', '#000');  root.style.setProperty('--text-color', '#fff');  } else if (lux < 50) {  root.style.setProperty('--background', '#1a1a1a');  root.style.setProperty('--text-color', 'rgba(255,255,255,0.9)');  } else {  root.style.setProperty('--background', '#fff');  root.style.setProperty('--text-color', '#333');  }  
}  

1.6)地理圍欄與本地化優化

(1) 地理位置檢測

  1. ?Geolocation API

    navigator.geolocation.getCurrentPosition(position => {  const { latitude, longitude } = position.coords;  // 判斷是否在目標區域  const isInChina = latitude > 18 && latitude < 54 && longitude > 73 && longitude < 136;  
    }, error => {  console.error('定位失敗:', error);  
    });  
    
  2. ?本地化優化策略

    地理位置CDN節點選擇語言包加載合規性調整
    中國大陸上海/北京中文隱私條款彈窗
    歐洲法蘭克福多語言GDPR合規
    北美弗吉尼亞英語CCPA合規

(2) 實戰代碼:區域資源加載

async function loadRegionalResources() {  const countryCode = await detectCountry();  let cdnUrl, privacyPolicy;  switch (countryCode) {  case 'CN':  cdnUrl = 'https://cdn-cn.example.com';  privacyPolicy = 'privacy-zh.html';  break;  case 'DE':  cdnUrl = 'https://cdn-eu.example.com';  privacyPolicy = 'privacy-de.html';  break;  default:  cdnUrl = 'https://cdn-us.example.com';  privacyPolicy = 'privacy-en.html';  }  loadScript(`${cdnUrl}/regional-sdk.js`);  showPrivacyModal(privacyPolicy);  
}  

1.7)五維聯動的決策引擎

(1)綜合決策矩陣

維度權重檢測周期策略優先級
設備30%首次加載
網絡25%實時監測最高
電量20%每分鐘
光線15%每5秒
地理10%每次會話

(2)決策算法示例

function calculateOptimizationScore() {  const weights = {  device: 0.3,  network: 0.25,  battery: 0.2,  light: 0.15,  geo: 0.1  };  const scores = {  device: getDeviceScore(), // 0-1  network: getNetworkScore(),  battery: getBatteryScore(),  light: getLightScore(),  geo: getGeoScore()  };  // 加權總分  const totalScore =   Object.entries(weights).reduce((acc, [key, weight]) =>  acc + (scores[key] * weight), 0);  return totalScore > 0.6 ? 'high' : totalScore > 0.3 ? 'mid' : 'low';  
}  

第二節 遺傳算法調參:150+性能參數自動尋優

2.1)核心原理與業務價值

遺傳算法(Genetic Algorithm)? 通過模擬生物進化論中的自然選擇機制,對Web性能參數組合進行全局尋優,突破傳統網格搜索的維度災難問題。其核心價值包括:

  • ?多維參數優化:支持同時處理150+參數(如緩存策略、資源壓縮率、預加載規則等)的聯合優化
  • ?動態適應場景:根據用戶設備、網絡環境等實時數據動態調整參數權重
  • ?成本效益比:相比人工調參,優化效率提升80倍,硬件成本降低65%
初始化種群
適應度評估
選擇優秀個體
交叉生成子代
基因突變
滿足終止條件?
輸出最優參數集

2.2) 技術實現:從編碼到調優

(1) 基因編碼方案

將性能參數映射為二進制基因序列,支持動態參數范圍:

// 參數基因編碼示例  
const geneSchema = [  { name: 'http2MaxStreams', type: 'int', min: 100, max: 1000, bits: 10 },  { name: 'imageQuality', type: 'float', min: 0.3, max: 1.0, bits: 8 },  { name: 'preloadDepth', type: 'enum', options: [1,2,3], bits: 2 }  
];  // 生成隨機個體  
function createIndividual() {  return geneSchema.map(param => {  if (param.type === 'int') {  return Math.floor(Math.random() * (param.max - param.min + 1)) + param.min;  }  // 其他類型處理...  });  
}  

(2)適應度函數設計

融合核心性能指標與業務指標:

function calculateFitness(params) {  const perfMetrics = runBenchmark(params);  const businessMetrics = getBusinessData();  // 多目標加權評分  return (  0.4 * (1 - normalize(perfMetrics.LCP, [0, 5000])) +  0.3 * (1 - normalize(perfMetrics.CLS, [0, 0.5])) +  0.2 * normalize(businessMetrics.CTR, [0.01, 0.2]) +  0.1 * normalize(businessMetrics.ConversionRate, [0.02, 0.15])  );  
}  // 歸一化函數  
const normalize = (val, [min, max]) => (val - min) / (max - min);  

(3) 進化算子實現

# 交叉操作(多點交叉)  
def crossover(parent1, parent2):  crossover_points = sorted(random.sample(range(len(parent1)), 2))  child = parent1[:crossover_points[0]] + parent2[crossover_points[0]:crossover_points[1]] + parent1[crossover_points[1]:]  return child  # 突變操作(自適應變異率)  
def mutate(individual, mutation_rate):  for i in range(len(individual)):  if random.random() < mutation_rate:  individual[i] = random.uniform(gene_schema[i]['min'], gene_schema[i]['max'])  return individual  

2.3)關鍵參數與優化效果

(1) 典型優化參數示例

參數類別關鍵參數示例影響范圍
網絡層優化http2MaxStreams、TCPFastOpenLCP降低15%-40%
渲染層優化CompositorThreadPriorityCLS改善20%-35%
資源加載策略preloadDepth、lazyLoadThresholdFID減少30%-50%
緩存策略memoryCacheRatio、SWTTL二次加載速度提升3x

(2) 優化效果對比

指標人工調參遺傳算法調參提升幅度
LCP中位數2.8s1.9s-32.1%
CLS P900.220.14-36.4%
內存使用峰值1.2GB860MB-28.3%
服務器成本$18,500/月$12,200/月-34.1%
參數迭代周期14天4小時98.8%↓

2.4)實戰案例:大規模參數優化

(1) 挑戰場景

某視頻平臺需優化152個參數,包括:

  • 視頻碼率自適應規則(32個參數)
  • 預加載策略(24個參數)
  • 播放器緩沖區配置(16個參數)
  • CDN調度策略(80個參數)

(2)遺傳算法配置

# ga-config.yaml  
population_size: 300  
generations: 100  
crossover_rate: 0.85  
mutation_rate: 0.15  
elitism: 0.1  
fitness_weights:  - name: video_start_time  weight: 0.4  - name: rebuffer_rate  weight: 0.3  - name: cdn_cost  weight: 0.3  

(3)優化效果

00:00 00:01 00:02 00:03 00:04 00:05 00:06 00:07 00:08 首幀時間 首幀時間 卡頓率 卡頓率 初始參數 遺傳算法優化后 視頻播放優化時間軸

2.5) 挑戰與解決方案

(1) 局部最優陷阱

  • ?問題:算法過早收斂至次優解

  • ?解決方案

    # 自適應多樣性維持  
    def maintain_diversity(population):  similarity_threshold = 0.8  for i in range(len(population)):  for j in range(i+1, len(population)):  if cosine_similarity(population[i], population[j]) > similarity_threshold:  population[j] = mutate(population[j], 0.5)  return population  
    

(2) 計算資源消耗

優化策略計算時間減少精度損失
分布式并行計算72%0%
進化代早期剪枝65%<2%
參數重要性采樣58%<1%

(3)實時性要求

  • ?增量進化算法

    class RealTimeGA {  constructor() {  this.population = [];  this.bestSolution = null;  }  incrementalEvolve(newData) {  this.population = this.population.map(ind =>   this.mutate(this.crossover(ind, this.bestSolution))  );  this.evaluate(newData);  }  
    }  
    

第三節 離線優先架構:Service Worker智能降級方案

3.1) 核心原理與業務價值

離線優先架構通過Service Worker的緩存控制和網絡攔截能力,確保用戶在弱網或無網狀態下仍能訪問核心內容,同時根據環境動態降級非關鍵功能。其技術優勢包括:

  • ?無縫體驗:在網絡波動或服務器故障時提供內容回退
  • ?智能降級:根據設備電量、網絡帶寬、用戶位置等參數動態調整資源加載策略
  • ?性能優化:通過預緩存關鍵資源減少首屏加載時間(FCP降低40%-60%)
用戶訪問
網絡可用?
請求最新資源
讀取緩存
緩存命中?
返回緩存內容
返回降級頁面
更新緩存

3.2)技術實現:緩存策略與降級邏輯

(1)Service Worker注冊與安裝

// 主線程注冊Service Worker  
if ('serviceWorker' in navigator) {  navigator.serviceWorker.register('/sw.js', {  scope: '/',  updateViaCache: 'none'  }).then(reg => {  console.log('SW注冊成功:', reg);  });  
}  // sw.js - 安裝階段預緩存關鍵資源  
const CACHE_NAME = 'v1-core-assets';  
const PRE_CACHE_LIST = [  '/styles/core.css',  '/scripts/app.js',  '/offline.html'  
];  self.addEventListener('install', event => {  event.waitUntil(  caches.open(CACHE_NAME)  .then(cache => cache.addAll(PRE_CACHE_LIST))  );  
});  

(2)動態緩存策略

// 網絡優先,失敗后降級到緩存  
self.addEventListener('fetch', event => {  event.respondWith(  fetch(event.request)  .then(networkResponse => {  // 更新緩存  const responseClone = networkResponse.clone();  caches.open(CACHE_NAME)  .then(cache => cache.put(event.request, responseClone));  return networkResponse;  })  .catch(() => {  // 網絡不可用時降級  return caches.match(event.request) ||  caches.match('/offline.html');  })  );  
});  

(3)智能降級決策樹

// 基于環境參數選擇策略  
function selectCacheStrategy(request) {  const conditions = detectEnvironment();  const url = new URL(request.url);  // 核心路徑始終緩存  if (url.pathname.startsWith('/core')) {  return 'cache-first';  }  // 弱網環境降級  if (conditions.networkStatus === 'slow-2g') {  return url.searchParams.has('detail') ?  'cache-only' : 'stale-while-revalidate';  }  // 低電量模式  if (conditions.batteryLevel < 0.2) {  return 'cache-first';  }  return 'network-first';  
}  // 環境檢測  
function detectEnvironment() {  return {  networkStatus: navigator.connection.effectiveType,  batteryLevel: navigator.getBattery().then(b => b.level),  isDataSaver: navigator.connection.saveData  };  
}  

3.3)緩存策略矩陣與性能數據

(1)緩存策略對比(表格)

策略名稱網絡消耗緩存新鮮度適用場景
?Network First實時強網環境,需最新數據
?Cache First可能陳舊靜態資源,低電量模式
?Stale-While-Revalidate最終一致平衡體驗與實時性的場景
?Cache Only固定版本完全離線必需內容

(2)降級效果數

場景完全加載時間降級后時間用戶流失率下降
3G網絡8.2s2.1s62%
服務器故障超時1.8s78%
低端設備(1GB內存)6.5s3.0s45%

3.4) 實戰案例:多級降級方案實現

(1)降級層級定義

網絡中斷
緩存缺失
完全離線
正常模式
基礎功能模式
核心內容模式
靜態兜底頁

(2)分層降級配置

// 定義降級規則  
const DEGRADE_RULES = [  {  condition: () => navigator.onLine === false,  actions: [  { type: 'redirect', from: '/checkout', to: '/cached-checkout' },  { type: 'replace', selector: 'img', attr: 'src', fallback: 'data-src-lowres' }  ]  },  {  condition: () => navigator.connection.effectiveType === '2g',  actions: [  { type: 'disable', selector: '.recommendations' },  { type: 'inline', url: '/styles/core.css' }  ]  }  
];  // 執行降級  
function applyDegradation() {  DEGRADE_RULES.forEach(rule => {  if (rule.condition()) {  rule.actions.forEach(action => {  switch (action.type) {  case 'redirect':  if (location.pathname === action.from) {  location.href = action.to;  }  break;  case 'replace':  document.querySelectorAll(action.selector).forEach(el => {  el[action.attr] = el.dataset[action.fallback];  });  break;  }  });  }  });  
}  

3.5) 挑戰與解決方案

(1)緩存一致性難題

  • ?問題:服務端數據更新導致客戶端緩存過期

  • ?解決方案

    // 動態緩存版本控制  
    const CACHE_VERSION = 'v2';  
    self.addEventListener('activate', event => {  event.waitUntil(  caches.keys().then(keys =>  Promise.all(  keys.filter(key => !key.includes(CACHE_VERSION))  .map(key => caches.delete(key))  )  )  );  
    });  
    

(2)存儲空間限制

策略實現方式存儲節省
?LRU淘汰保留最近使用的資源,刪除舊緩存35%-60%
?按需緩存僅緩存用戶實際訪問過的頁面40%-75%
?差異化壓縮WebP圖片 + Brotli文本壓縮50%-80%

(3)隱私與安全

// 敏感數據保護  
self.addEventListener('fetch', event => {  if (event.request.url.includes('/api/private')) {  event.respondWith(  fetch(event.request).catch(() =>  Response.json({ error: '請連接網絡后重試' }, { status: 403 })  )  );  }  
});  

3.6)預測式緩存與邊緣計算融合

(1)用戶行為預測模型

# 基于LSTM的頁面訪問預測  
from tensorflow.keras.models import Sequential  
model = Sequential([  LSTM(64, input_shape=(30, 1)),  # 輸入30天訪問序列  Dense(10, activation='softmax')  # 預測未來10個頁面  
])  
model.compile(loss='categorical_crossentropy', optimizer='adam')  

(2) 邊緣節點協同緩存

Client EdgeNode Origin 請求/product/123 返回緩存的1.0版本 異步驗證緩存 返回304或新內容 下次請求時更新 Client EdgeNode Origin

(3)5G網絡下的動態策略

// 根據網絡類型調整緩存策略  
function handle5GNetwork() {  if (navigator.connection.effectiveType === '5g') {  // 預加載下一頁資源  const links = document.querySelectorAll('a[rel=preload]');  links.forEach(link => {  cache.add(link.href);  });  }  
}  

全篇總結回顧

本文系統構建了現代Web性能優化體系,從圖形資源(AVIF/WebP智能適配、WASM解碼加速)、渲染引擎(WebGPU加速、OffscreenCanvas多線程)、網絡協議(HTTP/3全站部署、QUIC 0-RTT)、框架生態(虛擬列表內存優化、SWC編譯提速400%)到監控體系(眼球追蹤FSP指標、遺傳算法自動調參),形成覆蓋“加載-渲染-交互-感知”全鏈路的優化方案。通過五維環境感知與自適應降級策略,實現設備、網絡、場景的動態適配,最終達成LCP≤1.2s、CLS≤0.1、FID≤50ms的極致體驗。未來將深度融合AI預測與邊緣計算,持續突破Web性能邊界。

本系列全片結束了,道阻且長行則將至,與君共勉之,在未來的編程之路上一起努力吧?

在這里插入圖片描述

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/900064.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/900064.shtml
英文地址,請注明出處:http://en.pswp.cn/news/900064.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

PQ以及有關索引的筆記Faiss: The Missing Manual

參考Faiss 索引結構總結&#xff1a; 為了加深記憶&#xff0c;介紹一下Inverted File Index&#xff08;IVF&#xff09;的名字由來&#xff1a; IVF索引的名字源自“倒排文件”&#xff08;Inverted File&#xff09;的概念。在傳統的信息檢索中&#xff0c;倒排文件是一種索…

win10徹底讓圖標不顯示在工具欄

關閉需要不顯示的軟件 打開 例此時我關閉了IDEA的顯示 如果說只是隱藏&#xff0c;鼠標拖動一個道理 例QQ 如果說全部顯示不隱藏

關稅核爆72小時!跨境矩陣防御戰緊急打響

一、T86崩塌&#xff1a;全球貿易鏈的至暗時刻 &#xff08;配圖&#xff1a;美國海關系統深夜彈出紅色警報&#xff09; 5月2日凌晨2:17&#xff0c;杭州某光伏企業的供應鏈系統突然發出刺耳警報——其價值1800萬美元的逆變器模塊被劃入34%關稅清單。這場代號"黑天鵝突…

藍橋杯Java B組省賽真題題型近6年統計分類

困難題 題號題型分值代碼量難度通過率內容2024-F解答1581困難0.12最短路問題 Dijkstra 期望2024-G解答20116困難0.19模擬 暴力 搜索 DFS 剪紙 枚舉2023-H解答2070困難0動態規劃2022-H解答20109困難0.032022-J解答25141困難0搜索2021-H解答2041困難0.18二分 思維 規律2021-I解答…

【網絡流 圖論建模 最大權閉合子圖】 [六省聯考 2017] 壽司餐廳

題目描述&#xff1a; P3749 [六省聯考 2017] 壽司餐廳 題目描述 Kiana 最近喜歡到一家非常美味的壽司餐廳用餐。 每天晚上&#xff0c;這家餐廳都會按順序提供 n n n 種壽司&#xff0c;第 i i i 種壽司有一個代號 a i a_i ai? 和美味度 d i , i d_{i, i} di,i?&…

前端面試題(三):axios有哪些常用的方法

Axios 是一個基于 Promise 的 HTTP 客戶端&#xff0c;用于瀏覽器和 Node.js 中發送 HTTP 請求。它提供了一些常用的方法來處理不同類型的請求。以下是 Axios 中常用的一些方法&#xff1a; 1. axios.get() 用于發送 GET 請求&#xff0c;從服務器獲取數據。 axios.get(/api/d…

python match case語法

學習路線&#xff1a;B站 普通的if判斷 def if_traffic_light(color):if color red:return Stopelif color yellow:return Slow downelif color green:return Goelse:return Invalid colorprint(if_traffic_light(red)) # Output: Stop print(if_traffic_light(yellow)) …

LLaMA-Factory大模型微調全流程指南

該文檔為LLaMA-Factory大模型微調提供了完整的技術指導&#xff0c;涵蓋了從環境搭建到模型訓練、推理和合并模型的全流程&#xff0c;適用于需要進行大模型預訓練和微調的技術人員。 一、docker 容器服務 請參考如下資料制作 docker 容器服務&#xff0c;其中&#xff0c;掛…

【HCIA】靜態綜合實驗練習筆記

實驗拓撲圖如下&#xff1a; 實驗配置思路如下&#xff1a; 1、網段劃分、配置IP地址 2、配置DHCP&#xff0c;使客戶端獲得ip地址 3、配置靜態明細路由&#xff0c;內網全網通 4、配置空接口防環 5、配置優先級&#xff0c;實現選路最佳 6、配置缺省路由&#xff0c;實現公網通…

大數據(4.5)Hive聚合函數深度解析:從基礎統計到多維聚合的12個生產級技巧

目錄 背景一、Hive聚合函數分類與語法1. 基礎聚合函數2. 高級聚合函數 二、6大核心場景與案例場景1&#xff1a;基礎統計&#xff08;SUM/COUNT&#xff09;場景2&#xff1a;多維聚合&#xff08;GROUPING SETS&#xff09;場景3&#xff1a;層次化聚合&#xff08;ROLLUP&…

RTOS基礎 -- NXP M4小核的RPMsg-lite與端點機制回顧

一、RPMsg-lite與端點機制回顧 在RPMsg協議框架中&#xff1a; Endpoint&#xff08;端點&#xff09; 是一個邏輯通信端口&#xff0c;由本地地址&#xff08;local addr&#xff09;、遠程地址&#xff08;remote addr&#xff09;和回調函數組成。每個消息都會發送到特定的…

NineData云原生智能數據管理平臺新功能發布|2025年3月版

本月發布 15 項更新&#xff0c;其中重點發布 3 項、功能優化 11 項、性能優化 1 項。 重點發布 基礎服務 - MFA 多因子認證 新增 MFA 多因子認證&#xff0c;提升賬號安全性。系統管理員開啟后&#xff0c;所有組織成員需綁定認證器&#xff0c;登錄時需輸入動態驗證碼。 數…

DAY 35 leetcode 202--哈希表.快樂數

題號202 編寫一個算法來判斷一個數 n 是不是快樂數。 「快樂數」 定義為&#xff1a; 對于一個正整數&#xff0c;每一次將該數替換為它每個位置上的數字的平方和。然后重復這個過程直到這個數變為 1&#xff0c;也可能是 無限循環 但始終變不到 1。如果這個過程 結果為 1&a…

Maven+Spring實現后端開發

一、前置知識的介紹 1.Spring 輕量級的 DI / IoC 和 AOP 容器的開源框架 容器的開源框架網址&#xff1a;https://spring.io/projects/spring-framework 作用&#xff1a;可簡化管理創建和組裝對象之間的依賴關系 將controller----->service------->dao層的依賴配置…

解鎖界面設計密碼,打造極致用戶體驗

界面設計是對軟件、網站、移動應用等產品的用戶界面進行設計的過程&#xff0c;旨在為用戶提供美觀、易用、高效的交互體驗。以下是關于界面設計的一些主要方面&#xff1a; 一、設計原則 用戶中心原則&#xff1a;以用戶為中心&#xff0c;了解用戶的需求、期望、行為和習慣…

Joint Receiver Design for Integrated Sensing and Communications

摘要——在本文中&#xff0c;我們研究了集成感知與通信(ISAC)系統的聯合接收機設計&#xff0c;其中通信信號和目標回波信號同時被接收和處理&#xff0c;以在兩種功能之間實現平衡性能。特別地&#xff0c;我們提出了兩種設計方案來解決聯合感知和通信問題中的接收信號處理。…

DeepSeek接入飛書多維表格,效率起飛!

今天教大家把DeepSeek接入飛書表格使用。 準備工作&#xff1a;安裝并登錄飛書&#xff1b;可以準備一些要處理的數據&#xff0c;確保數據格式正確&#xff0c;如 Excel、CSV 等&#xff0c;也可直接存儲到飛書多維表格。 創建飛書多維表格&#xff1a;打開飛書&#xff0c;點…

【C語言入門】由淺入深學習指針 【第二期】

目錄 1. 指針變量為什么要有類型&#xff1f; 2. 野指針 2.1 未初始化導致的野指針 2.2 指針越界導致的野指針 2.3 如何規避野指針 3. 指針運算 3.1 指針加減整數 3.2 指針減指針 3.3 指針的關系運算 4. 二級指針 5. 指針數組 5.1 如何使用指針數組模擬二維數組 上…

OpenCV 圖形API(13)用于執行兩個矩陣(或圖像)逐元素乘法操作的函數mul()

操作系統&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 編程語言&#xff1a;C11 描述 計算兩個矩陣的每個元素的縮放乘積。 mul函數計算兩個矩陣的逐元素乘積&#xff1a; dst ( I ) saturate ( scale ? src1 ( I ) ? src2 ( I ) ) …

人工智能混合編程實踐:C++調用封裝好的DLL進行圖像超分重建

人工智能混合編程實踐:C++調用封裝好的DLL進行圖像超分重建 前言相關介紹C++簡介ONNX簡介ONNX Runtime 簡介**核心特點**DLL 簡介**核心特點****創建與使用****應用場景****優點與挑戰**圖像異常檢測簡介應用場景前提條件實驗環境項目結構C++調用封裝好的DLL進行圖像超分重建C…