18video性欧美19sex,欧美高清videosddfsexhd,性少妇videosexfreexxx片中国,激情五月激情综合五月看花,亚洲人成网77777色在线播放

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

帶顏色的JVM垃圾回收三色標(biāo)記法

Linux愛好者 ? 來源:博客 ? 作者:等不到的口琴 ? 2021-10-20 14:23 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

三色標(biāo)記法是一種垃圾回收法,它可以讓JVM不發(fā)生或僅短時間發(fā)生STW(Stop The World),從而達(dá)到清除JVM內(nèi)存垃圾的目的。JVM中的CMS、G1垃圾回收器所使用垃圾回收算法即為三色標(biāo)記法。

三色標(biāo)記算法思想三色標(biāo)記法將對象的顏色分為了黑、灰、白,三種顏色。

白色:該對象沒有被標(biāo)記過。(對象垃圾)

灰色:該對象已經(jīng)被標(biāo)記過了,但該對象下的屬性沒有全被標(biāo)記完。(GC需要從此對象中去尋找垃圾)

黑色:該對象已經(jīng)被標(biāo)記過了,且該對象下的屬性也全部都被標(biāo)記過了。(程序所需要的對象)

算法流程

從我們main方法的根對象(JVM中稱為GC Root)開始沿著他們的對象向下查找,用黑灰白的規(guī)則,標(biāo)記出所有跟GC Root相連接的對象,掃描一遍結(jié)束后,一般需要進(jìn)行一次短暫的STW(Stop The World),再次進(jìn)行掃描,此時因?yàn)楹谏珜ο蟮膶傩远家惨呀?jīng)被標(biāo)記過了。

所以只需找出灰色對象并順著繼續(xù)往下標(biāo)記(且因?yàn)榇蟛糠值臉?biāo)記工作已經(jīng)在第一次并發(fā)的時候發(fā)生了,所以灰色對象數(shù)量會很少,標(biāo)記時間也會短很多), 此時程序繼續(xù)執(zhí)行,GC線程掃描所有的內(nèi)存,找出掃描之后依舊被標(biāo)記為白色的對象(垃圾),清除。

具體流程:

首先創(chuàng)建三個集合:白、灰、黑。

將所有對象放入白色集合中。

然后從根節(jié)點(diǎn)開始遍歷所有對象(注意這里并不遞歸遍歷),把遍歷到的對象從白色集合放入灰色集合。

之后遍歷灰色集合,將灰色對象引用的對象從白色集合放入灰色集合,之后將此灰色對象放入黑色集合

重復(fù) 4 直到灰色中無任何對象

通過write-barrier檢測對象有變化,重復(fù)以上操作

收集所有白色對象(垃圾)

三色標(biāo)記存在問題

浮動垃圾:并發(fā)標(biāo)記的過程中,若一個已經(jīng)被標(biāo)記成黑色或者灰色的對象,突然變成了垃圾,由于不會再對黑色標(biāo)記過的對象重新掃描,所以不會被發(fā)現(xiàn),那么這個對象不是白色的但是不會被清除,重新標(biāo)記也不能從GC Root中去找到,所以成為了浮動垃圾,浮動垃圾對系統(tǒng)的影響不大,留給下一次GC進(jìn)行處理即可。

對象漏標(biāo)問題(需要的對象被回收):并發(fā)標(biāo)記的過程中,一個業(yè)務(wù)線程將一個未被掃描過的白色對象斷開引用成為垃圾(刪除引用),同時黑色對象引用了該對象(增加引用)(這兩部可以不分先后順序);因?yàn)楹谏珜ο蟮暮x為其屬性都已經(jīng)被標(biāo)記過了,重新標(biāo)記也不會從黑色對象中去找,導(dǎo)致該對象被程序所需要,卻又要被GC回收,此問題會導(dǎo)致系統(tǒng)出現(xiàn)問題,而CMS與G1,兩種回收器在使用三色標(biāo)記法時,都采取了一些措施來應(yīng)對這些問題,CMS對增加引用環(huán)節(jié)進(jìn)行處理(Increment Update),G1則對刪除引用環(huán)節(jié)進(jìn)行處理(SATB)。

解決辦法在JVM虛擬機(jī)中有兩種常見垃圾回收器使用了該算法:CMS(Concurrent Mark Sweep)、G1(Garbage First) ,為了解決三色標(biāo)記法對對象漏標(biāo)問題各自有各自的法:

CMS回顧

CMS(Concurrent Mark Sweep)收集器是一種以獲取最短回收停頓時間為目標(biāo)的收集器。目前很大一部分的Java應(yīng)用集中在互聯(lián)網(wǎng)網(wǎng)站或者基于瀏覽器的B/S系統(tǒng)的服務(wù)端上,這類應(yīng)用通常都會較為關(guān)注服務(wù)的響應(yīng)速度,希望系統(tǒng)停頓時間盡可能短,以給用戶帶來良好的交互體驗(yàn)。CMS收集器就非常符合這類應(yīng)用的需求(但是實(shí)際由于某些問題,很少有使用CMS作為主要垃圾回收器的)。

從名字(包含“Mark Sweep”)上就可以看出CMS收集器是基于標(biāo)記-清除算法實(shí)現(xiàn)的,它的運(yùn)作過程相對于前面幾種收集器來說要更復(fù)雜一些,整個過程分為四個步驟,包括:1)初始標(biāo)記(CMS initial mark) 2)并發(fā)標(biāo)記(CMS concurrent mark) 3)重新標(biāo)記(CMS remark) 4)并發(fā)清除(CMS concurrent sweep)

其中初始標(biāo)記、重新標(biāo)記這兩個步驟仍然需要“Stop The World”。初始標(biāo)記僅僅只是標(biāo)記一下GCRoots能直接關(guān)聯(lián)到的對象,速度很快;

并發(fā)標(biāo)記階段就是從GC Roots的直接關(guān)聯(lián)對象開始遍歷整個對象圖的過程,這個過程耗時較長但是不需要停頓用戶線程,可以與垃圾收集線程一起并發(fā)運(yùn)行;

重新標(biāo)記階段則是為了修正并發(fā)標(biāo)記期間,因用戶程序繼續(xù)運(yùn)作而導(dǎo)致標(biāo)記產(chǎn)生變動的那一部分對象的標(biāo)記記錄,這個階段的停頓時間通常會比初始標(biāo)記階段稍長一些,但也遠(yuǎn)比并發(fā)標(biāo)記階段的時間短;

最后是并發(fā)清除階段,清理刪除掉標(biāo)記階段判斷的已經(jīng)死亡的對象,由于不需要移動存活對象,所以這個階段也是可以與用戶線程同時并發(fā)的。由于在整個過程中耗時最長的并發(fā)標(biāo)記和并發(fā)清除階段中,垃圾收集器線程都可以與用戶線程一起工作,所以從總體上來說,CMS收集器的內(nèi)存回收過程是與用戶線程一起并發(fā)執(zhí)行的。

CMS解決辦法:增量更新

在應(yīng)對漏標(biāo)問題時,CMS使用了增量更新(Increment Update)方法來做:

在一個未被標(biāo)記的對象(白色對象)被重新引用后,引用它的對象若為黑色則要變成灰色,在下次二次標(biāo)記時讓GC線程繼續(xù)標(biāo)記它的屬性對象。

但是就算時這樣,其仍然是存在漏標(biāo)的問題:

在一個灰色對象正在被一個GC線程回收時,當(dāng)它已經(jīng)被標(biāo)記過的屬性指向了一個白色對象(垃圾)

而這個對象的屬性對象本身還未全部標(biāo)記結(jié)束,則為灰色不變

而這個GC線程在標(biāo)記完最后一個屬性后,認(rèn)為已經(jīng)將所有的屬性標(biāo)記結(jié)束了,將這個灰色對象標(biāo)記為黑色,被重新引用的白色對象,無法被標(biāo)記

CMS另兩個致命缺陷

CMS采用了Mark-Sweep算法,最后會產(chǎn)生許多內(nèi)存碎片,當(dāng)?shù)揭欢〝?shù)量時,CMS無法清理這些碎片了,CMS會讓Serial Old垃圾處理器來清理這些垃圾碎片,而Serial Old垃圾處理器是單線程操作進(jìn)行清理垃圾的,效率很低。

所以使用CMS就會出現(xiàn)一種情況,硬件升級了,卻越來越卡頓,其原因就是因?yàn)檫M(jìn)行Serial Old GC時,效率過低。

解決方案:使用Mark-Sweep-Compact算法,減少垃圾碎片

調(diào)優(yōu)參數(shù)(配套使用):

-XX:+UseCMSCompactAtFullCollection 開啟CMS的壓縮

-XX:CMSFullGCsBeforeCompaction 默認(rèn)為0,指經(jīng)過多少次CMS FullGC才進(jìn)行壓縮

當(dāng)JVM認(rèn)為內(nèi)存不夠,再使用CMS進(jìn)行并發(fā)清理內(nèi)存可能會發(fā)生OOM的問題,而不得不進(jìn)行Serial Old GC,Serial Old是單線程垃圾回收,效率低

解決方案:降低觸發(fā)CMS GC的閾值,讓浮動垃圾不那么容易占滿老年代

調(diào)優(yōu)參數(shù):

-XX:CMSInitiatingOccupancyFraction 92% 可以降低這個值,讓老年代占用率達(dá)到該值就進(jìn)行CMS GC

G1回顧

G1(Garbage First)物理內(nèi)存不再分代,而是由一塊一塊的Region組成,但是邏輯分代仍然存在。G1不再堅(jiān)持固定大小以及固定數(shù)量的分代區(qū)域劃分,而是把連續(xù)的Java堆劃分為多個大小相等的獨(dú)立區(qū)域(Region),每一個Region都可以根據(jù)需要,扮演新生代的Eden空間、Survivor空間,或者老年代空間。收集器能夠?qū)Π缪莶煌巧腞egion采用不同的策略去處理,這樣無論是新創(chuàng)建的對象還是已經(jīng)存活了一段時間、熬過多次收集的舊對象都能獲取很好的收集效果。

Region中還有一類特殊的Humongous區(qū)域,專門用來存儲大對象。G1認(rèn)為只要大小超過了一個Region容量一半的對象即可判定為大對象。每個Region的大小可以通過參數(shù)-XX:G1HeapRegionSize設(shè)定,取值范圍為1MB~32MB,且應(yīng)為2的N次冪。而對于那些超過了整個Region容量的超級大對象,將會被存放在N個連續(xù)的Humongous Region之中,G1的大多數(shù)行為都把Humongous Region作為老年代的一部分來進(jìn)行看待

G1前置知識

Card Table(多種垃圾回收器均具備)

由于在進(jìn)行YoungGC時,我們在進(jìn)行對一個對象是否被引用的過程,需要掃描整個Old區(qū),所以JVM設(shè)計(jì)了CardTable,將Old區(qū)分為一個一個Card,一個Card有多個對象;如果一個Card中的對象有引用指向Young區(qū),則將其標(biāo)記為Dirty Card,下次需要進(jìn)行YoungGC時,只需要去掃描Dirty Card即可。

Card Table 在底層數(shù)據(jù)結(jié)構(gòu)以 Bit Map實(shí)現(xiàn)。

RSet(Remembered Set)

是輔助GC過程的一種結(jié)構(gòu),典型的空間換時間工具,和Card Table有些類似。

后面說到的CSet(Collection Set)也是輔助GC的,它記錄了GC要收集的Region集合,集合里的Region可以是任意年代的。

在GC的時候,對于old-》young和old-》old的跨代對象引用,只要掃描對應(yīng)的CSet中的RSet即可。邏輯上說每個Region都有一個RSet,RSet記錄了其他Region中的對象引用本Region中對象的關(guān)系,屬于points-into結(jié)構(gòu)(誰引用了我的對象)。

而Card Table則是一種points-out(我引用了誰的對象)的結(jié)構(gòu),每個Card 覆蓋一定范圍的Heap(一般為512Bytes)。G1的RSet是在Card Table的基礎(chǔ)上實(shí)現(xiàn)的:每個Region會記錄下別的Region有指向自己的指針,并標(biāo)記這些指針分別在哪些Card的范圍內(nèi)。這個RSet其實(shí)是一個Hash Table,Key是別的Region的起始地址,Value是一個集合,里面的元素是Card Table的Index。每個Region中都有一個RSet,記錄其他Region到本Region的引用信息;使得垃圾回收器不需要掃描整個堆找到誰引用當(dāng)前分區(qū)中的對象,只需要掃描RSet即可。

CSet(Collection Set)

一組可被回收的分區(qū)Region的集合, 是多個對象的集合內(nèi)存區(qū)域。

新生代與老年代的比例

5% - 60%,一般不使用手工指定,因?yàn)檫@是G1預(yù)測停頓時間的基準(zhǔn),這地方簡要說明一下,G1可以指定一個預(yù)期的停頓時間,然后G1會根據(jù)你設(shè)定的時間來動態(tài)調(diào)整年輕代的比例,例如時間長,就將年輕代比例調(diào)小,讓YGC盡早行。

G1解決辦法:SATB

SATB(Snapshot At The Beginning), 在應(yīng)對漏標(biāo)問題時,G1使用了SATB方法來做,具體流程:

在開始標(biāo)記的時候生成一個快照圖標(biāo)記存活對象

在一個引用斷開后,要將此引用推到GC的堆棧里,保證白色對象(垃圾)還能被GC線程掃描到(在**write barrier(寫屏障)**里把所有舊的引用所指向的對象都變成非白的)。

配合Rset,去掃描哪些Region引用到當(dāng)前的白色對象,若沒有引用到當(dāng)前對象,則回收

SATB詳細(xì)流程

SATB是維持并發(fā)GC的一種手段。G1并發(fā)的基礎(chǔ)就是SATB。SATB可以理解成在GC開始之前對堆內(nèi)存里的對象做一次快照,此時活的對像就認(rèn)為是活的,從而開成一個對象圖。

在GC收集的時候,新生代的對象也認(rèn)為是活的對象,除此之外其他不可達(dá)的對象都認(rèn)為是垃圾對象。

如何找到在GC過程中分配的對象呢?每個region記錄著兩個top-at-mark-start(TAMS)指針,分別為prevTAMS和nextTAMS。在TAMS以上的對象就是新分配的,因而被視為隱式marked。

通過這種方式我們就找到了在GC過程中新分配的對象,并把這些對象認(rèn)為是活的對象。

解決了對象在GC過程中分配的問題,那么在GC過程中引用發(fā)生變化的問題怎么解決呢?

G1給出的解決辦法是通過Write Barrier。Write Barrier就是對引用字段進(jìn)行賦值做了額外處理。通過Write Barrier就可以了解到哪些引用對象發(fā)生了什么樣的變化。

mark的過程就是遍歷heap標(biāo)記live object的過程,采用的是三色標(biāo)記算法,這三種顏色為white(表示還未訪問到)、gray(訪問到但是它用到的引用還沒有完全掃描)、back(訪問到而且其用到的引用已經(jīng)完全掃描完)。

整個三色標(biāo)記算法就是從GC roots出發(fā)遍歷heap,針對可達(dá)對象先標(biāo)記white為gray,然后再標(biāo)記gray為black;遍歷完成之后所有可達(dá)對象都是balck的,所有white都是可以回收的。

SATB僅僅對于在marking開始階段進(jìn)行“snapshot”(marked all reachable at mark start),但是concurrent的時候并發(fā)修改可能造成對象漏標(biāo)記。

對black新引用了一個white對象,然后又從gray對象中刪除了對該white對象的引用,這樣會造成了該white對象漏標(biāo)記。

對black新引用了一個white對象,然后從gray對象刪了一個引用該white對象的white對象,這樣也會造成了該white對象漏標(biāo)記。

對black新引用了一個剛new出來的white對象,沒有其他gray對象引用該white對象,這樣也會造成了該white對象漏標(biāo)記。

SATB效率高于增量更新的原因?

因?yàn)镾ATB在重新標(biāo)記環(huán)節(jié)只需要去重新掃描那些被推到堆棧中的引用,并配合Rset來判斷當(dāng)前對象是否被引用來進(jìn)行回收;

并且在最后G1并不會選擇回收所有垃圾對象,而是根據(jù)Region的垃圾多少來判斷與預(yù)估回收價值(指回收的垃圾與回收的STW時間的一個預(yù)估值),將一個或者多個Region放到CSet中,最后將這些Region中的存活對象壓縮并復(fù)制到新的Region中,清空原來的Region。

G1會不會進(jìn)行Full GC?

會,當(dāng)內(nèi)存滿了的時候就會進(jìn)行Full GC;且JDK10之前的Full GC,為單線程的,所以使用G1需要避免Full GC的產(chǎn)生。

解決方案:

加大內(nèi)存;

提高CPU性能,加快GC回收速度,而對象增加速度趕不上回收速度,則Full GC可以避免;

降低進(jìn)行Mixed GC觸發(fā)的閾值,讓Mixed GC提早發(fā)生(默認(rèn)45%)

編輯:jq

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • cpu
    cpu
    +關(guān)注

    關(guān)注

    68

    文章

    11192

    瀏覽量

    221882
  • cms
    cms
    +關(guān)注

    關(guān)注

    0

    文章

    60

    瀏覽量

    11399
  • JVM
    JVM
    +關(guān)注

    關(guān)注

    0

    文章

    160

    瀏覽量

    12908

原文標(biāo)題:帶顏色的 JVM:三色標(biāo)記詳解

文章出處:【微信號:LinuxHub,微信公眾號:Linux愛好者】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點(diǎn)推薦

    OPT4048三色XYZ顏色傳感器技術(shù)解析與應(yīng)用指南

    Texas Instruments OPT4048三色XYZ顏色傳感器是一款單芯片高分辨率顏色傳感器,能夠測量四個通道,每個通道具有特定設(shè)計(jì)的光譜響應(yīng)。四個通道中的個通道與CIE
    的頭像 發(fā)表于 08-28 10:05 ?434次閱讀
    OPT4048<b class='flag-5'>三色</b>XYZ<b class='flag-5'>顏色</b>傳感器技術(shù)解析與應(yīng)用指南

    廣州黃埔城管攜手??低暣蛟?b class='flag-5'>垃圾分類智慧管理系統(tǒng)

    走進(jìn)廣州黃埔社區(qū),"無異味、無污漬、無混投"的垃圾投放點(diǎn)已成為新日常。四分類垃圾桶整齊擺放,清新空氣與整潔環(huán)境讓居民倍感舒心。
    的頭像 發(fā)表于 08-06 10:28 ?584次閱讀

    Vishay推出PLCC-6封裝RGB LED通過獨(dú)立控制紅色、綠色和藍(lán)色芯片實(shí)現(xiàn)寬

    車規(guī)級2800 mcd高亮度器件使角形里的每種顏色都落在CIE 1931顏色空間中 ? 美國?賓夕法尼亞?MALVERN、中國?上海?—?2025年7月16日 — 日前,威世科技
    的頭像 發(fā)表于 07-17 10:29 ?6267次閱讀
    Vishay推出PLCC-6封裝RGB LED通過獨(dú)立控制紅色、綠色和藍(lán)色芯片實(shí)現(xiàn)寬<b class='flag-5'>色</b>域

    三色變光的驅(qū)動器和單色的驅(qū)動器能通用么?

    在LED照明領(lǐng)域,驅(qū)動器的選擇直接影響燈具的性能和壽命。關(guān)于三色變光驅(qū)動器與單色驅(qū)動器能否通用的問題,需要從工作原理、電路設(shè)計(jì)、兼容性等多個維度進(jìn)行深入分析。 一、技術(shù)原理差異決定基礎(chǔ)兼容性 三色
    的頭像 發(fā)表于 06-23 17:04 ?1064次閱讀

    智能可回收箱:引領(lǐng)垃圾分類新潮流,推動城市環(huán)保與資源循環(huán)利用發(fā)展

    ,以促進(jìn)垃圾分類和資源回收。近年來,隨著智能化技術(shù)的發(fā)展,智能可回收箱也逐漸普及。這些智能回收箱配備高精度稱重系統(tǒng)、身份識別系統(tǒng)、滿載預(yù)警系統(tǒng)以及物聯(lián)網(wǎng)通信模塊等先
    的頭像 發(fā)表于 05-27 10:11 ?590次閱讀
    智能可<b class='flag-5'>回收</b>箱:引領(lǐng)<b class='flag-5'>垃圾</b>分類新潮流,推動城市環(huán)保與資源循環(huán)利用發(fā)展

    設(shè)備啟停與三色燈FB塊

    自動化控制設(shè)備中,每一臺設(shè)備都需要啟動與停止按鈕,大部分的設(shè)備也都有顯示設(shè)備運(yùn)行狀態(tài)的三色燈。
    的頭像 發(fā)表于 05-19 14:59 ?529次閱讀
    設(shè)備啟停與<b class='flag-5'>三色</b>燈FB塊

    垃圾回收破碎機(jī)遠(yuǎn)程監(jiān)控物聯(lián)網(wǎng)系統(tǒng)方案

    垃圾回收處理行業(yè)中,破碎機(jī)是一種專門用于將廢棄物料(如生活垃圾、工業(yè)廢料、建筑垃圾、電子垃圾等)通過物理破碎的方式減小體積、提升后續(xù)處理效
    的頭像 發(fā)表于 05-19 14:25 ?263次閱讀
    <b class='flag-5'>垃圾</b><b class='flag-5'>回收</b>破碎機(jī)遠(yuǎn)程監(jiān)控物聯(lián)網(wǎng)系統(tǒng)方案

    # 基于LockAI視覺識別模塊:C++尋找

    在傳統(tǒng)計(jì)算機(jī)視覺場景中,顏色識別是目標(biāo)檢測和分割的重要手段之一。通過識別特定顏色塊,可以在相對純凈的背景下快速定位目標(biāo)區(qū)域。本實(shí)驗(yàn)提供了一個簡單的塊識別案例,并將其封裝為一個自定
    的頭像 發(fā)表于 05-12 14:27 ?425次閱讀
    # 基于LockAI視覺識別模塊:C++尋找<b class='flag-5'>色</b>塊

    使用DLPC4422+DLP650NE+三色LED,原理設(shè)計(jì)DLPC4422的LMPSTAT這個管腳懸空未接,會不會有什么影響?

    設(shè)計(jì)投影儀,使用DLPC4422+DLP650NE+三色LED,原理設(shè)計(jì)DLPC4422的LMPSTAT這個管腳懸空未接,會不會有什么影響
    發(fā)表于 02-26 06:57

    DLP4710EVM-LC中的三色LED的大致中心波長,或其波長范圍是多少?

    您好,因?yàn)楝F(xiàn)有應(yīng)用需要知道DLP4710EVM-LC中的三色LED的大致中心波長,或其波長范圍。官網(wǎng)上的相關(guān)文檔里似乎并沒有相關(guān)信息?
    發(fā)表于 02-18 07:39

    光纖的序是怎么排列的

    光纖的序排列通常遵循特定的標(biāo)準(zhǔn),主要有兩種序排列方式,即BELLCORE的國標(biāo)纖芯順序和國標(biāo)全色譜。 BELLCORE的國標(biāo)纖芯順序 顏色排列:藍(lán)、橙(桔)、綠、棕、灰、白、紅、黑、黃、紫、粉紅
    的頭像 發(fā)表于 01-06 17:53 ?4382次閱讀

    智能垃圾投放站遠(yuǎn)程監(jiān)控智慧運(yùn)維系統(tǒng)方案

    隨著環(huán)保意識的提高和政策的推動,垃圾分類已成為全球發(fā)展的重要主題。我國持續(xù)推進(jìn)垃圾分類和回收等相關(guān)產(chǎn)業(yè)的發(fā)展,鼓勵居民和企業(yè)進(jìn)行垃圾分類和回收
    的頭像 發(fā)表于 12-31 15:47 ?551次閱讀

    如何選擇PCB顏色

    一、PCB顏色代表什么意思? ? PCB顏色一般是指拿到一塊PCB板時最直觀看到的板子上的油,PCB表面的顏色就是阻焊劑的顏色。PCB板染
    的頭像 發(fā)表于 12-24 11:33 ?1455次閱讀

    JTW90215如何一鍵實(shí)現(xiàn)三色無極調(diào)光?

    JTW90215是一顆單鍵三色無極調(diào)光電容觸摸芯片,具有高靈敏度,觸摸響應(yīng)快,默認(rèn)輸出低電平,循環(huán)輸出模式??捎糜诨瘖y鏡,臺燈等領(lǐng)域,其在防水抗干擾方面具有優(yōu)異的表現(xiàn)。管腳定義應(yīng)用電路功能描述觸摸
    的頭像 發(fā)表于 12-11 17:14 ?857次閱讀
    JTW90215如何一鍵實(shí)現(xiàn)<b class='flag-5'>三色</b>無極調(diào)光?

    一文分析分析三色調(diào)光臺燈的電路原理

    這個電路,出自一款在某電商平臺賣爆了的LED臺燈。 價格便宜,功能簡單實(shí)用: 所謂三色調(diào)光,是指支持種燈光顏色,同時支持光的亮度調(diào)節(jié)。 下面用張gif動圖感受一下是怎么操作的。 1
    的頭像 發(fā)表于 11-29 09:28 ?2.1w次閱讀
    一文分析分析<b class='flag-5'>三色</b>調(diào)光臺燈的電路原理