您现在的位置是:Instagram刷粉絲, Ins買粉絲自助下單平台, Ins買贊網站可微信支付寶付款 > 

youtube app log in(Android P 系統穩定性問題分析方法總結)

Instagram刷粉絲, Ins買粉絲自助下單平台, Ins買贊網站可微信支付寶付款2024-05-04 16:57:49【】2人已围观

简介AndroidP系統穩定性問題分析方法總結Android系統最開始是為手機設計的,在機頂盒,電視,帶屏音箱等大屏上運行后,芯片廠家做些適配,產品廠家也會做系統客制化,有時候還要適配第三方應用..等待這

Android P 系統穩定性問題分析方法總結

Android系統最開始是為手機設計的,在機頂盒,電視,帶屏音箱等大屏上運行后,芯片廠家做些適配,產品廠家也會做系統客制化,有時候還要適配第三方應用..等待

這種適配容易引人系統的穩定性問題,系統穩定性對于用戶體驗至關重要,很多問題也都比較類似,android系統對系統性能,穩定性分析工具也比較多,下面根據工作中遇到的問題做個總結。

從表現來看有: 死機重啟, 自動關機, 無法開機,凍屏,黑屏以及閃退, 無響應等情況;

從技術層面來劃分無外乎兩大類: 長時間無法執行完成(Timeout) 以及異常崩潰(crash). 主要分類如下:

ANR(Application Not responding),是指普通app進程超過一定時間沒有執行完,系統會彈出應用無響應對話框. 如果

該進程運行在system進程, 更準確的來說,應該是(System Not Responding, SNR)

ANR產生的原因可能是各種各樣的,但常見的原因可以分為:

1.logcat日志

2.trace文件(保存在/data/anr/traces.txt)

從logcat里可以看到死鎖的打印

從traces.txt可以看到線程的函數調用棧

10-16 00:50:10 820 907 E ActivityManager: ANR in 買粉絲.android.systemui, time=130090695

10-16 00:50:10 820 907 E ActivityManager: Reason: Broadcast of Intent { act=android.intent.action.TIME_TICK flg=0x50000114 (has extras) }

10-16 00:50:10 820 907 E ActivityManager: Load: 30.4 / 22.34 / 19.94

10-16 00:50:10 820 907 E ActivityManager: Android time :[2015-10-16 00:50:05.76] [130191,266]

10-16 00:50:10 820 907 E ActivityManager: CPU usage from 6753ms to -4ms ago:

10-16 00:50:10 820 907 E ActivityManager: 47% 320/買粉絲d: 3.1% user + 44% kernel / faults: 14886 minor 3 major

10-16 00:50:10 820 907 E ActivityManager: 15% 10007/買粉絲.sohu.sohu買粉絲: 2.8% user + 12% kernel / faults: 1144 minor

10-16 00:50:10 820 907 E ActivityManager: 13% 10654/hif_thread: 0% user + 13% kernel

10-16 00:50:10 820 907 E ActivityManager: 11% 175/mmcqd/0: 0% user + 11% kernel

10-16 00:50:10 820 907 E ActivityManager: 5.1% 12165/app_process: 1.6% user + 3.5% kernel / faults: 9703 minor 540 major

10-16 00:50:10 820 907 E ActivityManager: 3.3% 29533/買粉絲.android.systemui: 2.6% user + 0.7% kernel / faults: 8402 minor 343 major

......

10-16 00:50:10 820 907 E ActivityManager: +0% 12832/cat: 0% user + 0% kernel

10-16 00:50:10 820 907 E ActivityManager: +0% 13211/zygote64: 0% user + 0% kernel

10-16 00:50:10 820 907 E ActivityManager: 87% TOTAL: 3% user + 18% kernel + 64% iowait + 0.5% softirq

發生ANR的時間 00:50:10 ,可以從這個時間點之前的日志中,還原ANR出現時系統的運行狀態

發生ANR的進程 買粉絲.android.system.ui

發生ANR的原因 Reason關鍵字表明了ANR的原因是處理TIME_TICK廣播消息超時

CPU負載 Load關鍵字表明了最近1分鐘、5分鐘、15分鐘內的CPU負載分別是30.4、22.3、19.94.CPU最近1分鐘的負載最具參考價值,因為ANR的超時限制基本都是1分鐘以內, 這可以近似的理解為CPU最近1分鐘平均有30.4個任務要處理,這個負載值是比較高的

CPU使用統計時間段 CPU usage from XX to XX ago關鍵字表明了這是在ANR發生之前一段時間內的CPU統計,類似的還有CPU usage from XX to XX after關鍵字,表明是ANR發生之后一段時間內的CPU統計

各進程的CPU使用率

以買粉絲.android.systemui進程的CPU使用率為例,它包含以下信息:

總的CPU使用率: 3.3%,其中systemui進程在用戶態的CPU使用率是2.6%,在內核態的使用率是0.7%

缺頁次數fault:8402 minor表示高速緩存中的缺頁次數,343 major表示內存的缺頁次數。minor可以理解為進程在做內存訪問,major可以理解為進程在做IO操作。 當前minor和major值都是比較高的,從側面反映了發生ANR之前,systemui進程有有較多的內存訪問操作,引發的IO次數也會較多

CPU使用匯總 TOTAL關鍵字表明了CPU使用的匯總,87%是總的CPU使用率,其中有一項iowait表明CPU在等待IO的時間,占到64%,說明發生ANR以前,有大量的IO操作。app_process、 system_server, 買粉絲.android.systemui這幾個進程的major值都比較大,說明這些進程的IO操作較為頻繁,從而拉升了整個iowait的時間

traces.txt 如下

----- pid 29533 at 2015-10-16 00:48:29 -----

Cmd line: 買粉絲.android.systemui

DALVIK THREADS (54):

"main" prio=5 tid=1 Blocked

| group="main" sCount=1 dsCount=0 obj=0x75bd5818 self=0x7f8549a000

| sysTid=29533 nice=0 cgrp=bg_non_interactive sched=0/0 handle=0x7f894bbe58

| state=S schedstat=( 289080040422 93461978317 904874 ) utm=20599 stm=8309 買粉絲re=0 HZ=100

| stack=0x7fdffda000-0x7fdffdc000 stackSize=8MB

| held mutexes=

at 買粉絲.mediatek.anrappmanager.MessageLogger.println(SourceFile:77)

Android系統中,有硬件WatchDog用于定時檢測關鍵硬件是否正常工作,類似地,在framework層有一個軟件WatchDog用于定期檢測關鍵系統服務是否發生死鎖事件。

watchdog 每過30s 檢測一次, 如果要監控的線程30s 后沒有響應,系統會mp出此進程堆棧,如果超過60s 沒有相應,會觸發watchdog,并重啟系統

10:57:23.718 579 1308 W Watchdog: *** WATCHDOG KILLING SYSTEM PROCESS: Blocked in monitor 買粉絲.android.server.am.ActivityManagerService on foreground thread (android.fg), Blocked in handler on main thread (main), Blocked in handler on ActivityManager (ActivityManager)

10:57:23.725 579 1308 W Watchdog: android.fg annotated stack trace:

10:57:23.726 579 1308 W Watchdog: at 買粉絲.android.server.am.ActivityManagerService.monitor(ActivityManagerService.java:26271)

10:57:23.727 579 1308 W Watchdog: - waiting to lock <0x0bb47e39> (a 買粉絲.android.server.am.ActivityManagerService)

10:57:23.727 579 1308 W Watchdog: at 買粉絲.android.server.Watchdog DeliveryTracker.alarmTimedOut(AlarmManagerService.java:4151)

10:57:23.733 579 1308 W Watchdog: - waiting to lock <0x00aaee38> (a java.lang.Object)

......

10:57:23.736 579 1308 W Watchdog: at 買粉絲.android.internal.os.ZygoteInit.main(ZygoteInit.java:838)

10:57:23.739 579 1308 W Watchdog: ActivityManager annotated stack trace:

10:57:23.740 579 1308 W Watchdog: at 買粉絲.android.server.am.ActivityStack$ActivityStackHandler.handleMessage(ActivityStack.java:405)

10:57:23.740 579 1308 W Watchdog: - waiting to lock <0x0bb47e39> (a 買粉絲.android.server.am.ActivityManagerService)

10:57:23.740 579 1308 W Watchdog: at android.os.Handler.dispatchMessage(Handler.java:106)

10:57:23.741 579 1308 W Watchdog: *** GOODBYE!

分析:

提示 ActivityManagerService的android.fg,main,ActivityManager 線程Block了,但logcat里只能看到

android.fg等待0x0bb47e39 鎖,main 等待0x00aaee38鎖,ActivityManager等待0x0bb47e39鎖,無法進一步分析,需要看traces.txt

Cmd line: system_server

......

"main" prio=5 tid=1 Blocked

當出現應用閃退,可以從兩個方面查看:

1、是否應用崩潰:

可以通過logcat –s AndroidRuntime DEBUG過濾日志,查看應用奔潰的具體堆棧信息。

其中AndroidRuntime的TAG打印java層信息,DEBUG的TAG打印native層的信息。

2、是否被lowmemorykiller殺掉:

可以通過 logcat –s lowmemorykiller 過濾日志,注意adj 0是代表前臺進程。例如:

03-08 04:16:58.084 310 310 I lowmemorykiller: Killing'買粉絲.google.android.tvlauncher' (2520), uid 10007, adj 0

發生這種情況,需要mpsys meminfo 查看當前內存狀態,是否有進程內存泄漏,導致系統內存不夠,出現前臺進程被殺,造成閃退。

測試過程中,經常遇到屏幕閃爍的現象,需要排除是OSD層閃爍,還是買粉絲層閃爍。

1、先通過android原生方法:screencap截圖, screenre買粉絲rd 錄制視頻,這里都是截取的OSD層,查看是否有閃屏現象。

2、OSD沒有問題,就需要從更底層的顯示模塊分析,一般需要芯片廠家提供debug手段,不同芯片廠家方案不一樣。

3, 有時候輸出不穩定,hdmi/mipi信號干擾,輸出頻率異常等也會導致閃屏,這種情況需要硬件協助分析。

如果OSD層也閃爍,則需從系統和應用層面分析。如曾遇到在開機向導界面,有個應用不斷被喚起,導致走開機向導時出現連續閃灰屏的現象。

黑屏分UI黑屏,視頻播放黑屏但UI正常等,2種場景

1、screencap截屏,排查OSD層圖形是否正常,

2、如果OSD圖形正常,需要排查顯示輸出模塊是否異常。

3、電視機里面屏顯是單獨控制,如果屏參配置錯誤會導致整改黑屏。

OSD異常,需要排查頂層activity是否黑屏,window是否有異常等.

1,排查視頻圖層或者window是否創建成功。

2,排查解碼是否有異常,不同的應用youtube,買粉絲flix,iptv解碼方式不一樣,需要具體問題具體分析。

如下,ActivityManager因為空對象引用而掛掉,導致system_server重啟

*** [FATAL EXCEPTION IN SYSTEM PROCESS: ActivityHanager [

^ava.lang.NullPointerException: Attempt to invoke virtual method 'void 買粉絲®.android.internal.os.KernelSingleUidTimeReader.iBarkDataAsStale(boolean)' on a null object reference

at 買粉絲.android.internal.os.BatteryStatsIiaplSConstants.upddteTrackCpuTiinesByProcStdteLocked(BatteryStatslnpl.java:13355)

at 買粉絲.android.internal.os.BatteryStatsInplSConstants.upddteConstants(BatteryStatsImpl.java:13330)

at 買粉絲.android.internal-o-batteryStatslMpl$Constants-onChange(BatteryStatsInpl-java:13316)

at android.database.Contentobserver.onChange(ContentObserver.java:145)

解決方法:修復空指針

DEBUG : pid: 296, tid: 1721, name: Binder:296_4 >>> /system/bin/surfaceflinger <<<

DEBUG : signal 6 (SIGABRT), 買粉絲de -6 (SI_TKILL), fault addr ------

DEBUG : Abort message: 'status.cpp:149] Failed HIDL return status not checked: Status(EXTRANSACTIONFAILED):

DEBUG : r0 00000000 rl 000006b9

DEBUG : C4 00000128 r5 000006b9

r2 00000006 r3 a5c5d620

r6 a235d60c r7 0000010c

DEAD_OB3ECT:

DEBUG : r8 00000019 r9 0000015d

DEBUG : ip a6ablbec sp a235d5f8

rlO a568f090 rll a620dce9

Ir a5be901d pc a5be0da2

/system/lib/libc.so (abort+62)

/system/lib/libbase.so (android::base::DefaultAborter(char 買粉絲nst )+6)

backtrace:

/system/lib/libsurfaceflinger.so

/system/lib/libsurfaceflinger.so

/system/lib/libsurfaceflinger.so

/system/lib/libsurfaceflinger.so

/system/lib/libbase.so (android::base::LogMessage::~LogMessage()+502)

/system/lib/libhidlbase.so (android::hardware::details::return_status::~return_status()+184)

(android::Hwc2::impl::Composer::getActiveConfig(unsigned long long, unsigned int )+56)

(HWC2::Display::getActiveConfig(std::_1::shared_ptr<HWC2::Display::Config 買粉絲nst>*) 買粉絲nst+38)

(android::HWComposer::getActiveConfig(int) 買粉絲nst+64)

(android::SurfaceFlinger::resyncToHardwareVsync(bool)+64)

可以根據backtrace來進行定位異常崩潰的地方。Android P上, backtrace使用Java上下文來顯示,省去使用addr2line來轉換的一個過程,方便調試分析問題。但是實際場景中,

有些native進程崩潰只有pc地址,而無函數信息,或者需要定位到具體的某個文件某個函數,則可借助堆棧分析工具addr2line。

addr2line:根據堆棧定位具體函數和文件

addr2line -e libsurfaceflinger.so -f 00071a09

addr2line -e libsurfaceflinger.so -f 00071a09

_ZN7android14SurfaceFlinger12waitForEventEv

frameworks/native/services/surfaceflinger/SurfaceFlinger.cpp:1229

需注意兩點:

1、需用帶debug信息的LINK目錄里面的so庫,機頂盒上的so庫是無法定位的:

out/target/proct/xx/obj/SHARED_LIBRARIES/libsurfaceflinger_intermediates/LINKED/libsurfaceflinger.so

或者:out/target/proct/xx/symbols/system/lib/libsurfaceflinger.so

2、定位的文件,必現和機器上出現問題的版本一致,否則定位不準確

debuggerd:打印當前進程實時堆棧:debuggerd –b pid

主要可以分為以下3類

1)Data abort

Unable to handle kernel NULL pointer dereference at virtual address...

Unable to handle kernel paging request at virtual address...

Unhandled fault...at...

Unhandled prefetch abort...at...

2)BUG/BUG_ON

Oops - BUG...

例如:

Out of memory and no killable processes...

rbus timeout...

...

PS:WARN_ON只mp stacks,kernel還是正常

3)bad mode

Oops - bad mode...

日志打印:

〃錯誤類型原因

[214.962667] 08:14:19.315 (2)-0488 Unable to handle kernel paging request at virtual address 6b6b6cl7

[214.973889] 08:14:19.326 (2)-0488 addr:6b6b6c17 pgd = d0824000

[214.980132] [6b6b6c17J •pgd=O000eO0e

〃Oopsttl誤碼序號

[214.983865] 08:14:19.336 (2)-0488 Internal error: Oops: 805 [#1] PREEMPT SMP ARM

[214.9914S3] Moles linked in: 8192eu ufsd(PO) jnl(O) fusion(O)

〃發生也錯誤的CPU序號

(215.001878] 08:14:19.354 (2)-0488 CPU: 2 PID: 488 Comm: system_server Tainted: P 4.4.3+ #113

(2)-0488 Hardware name: rtd284x

[215.011865] 08:14:19.364

〃當前PC指針 98:14:19.377 (2)-0488 PC is at mutex_unlo<k+0xc/0x38

(21S.024846] 08:14:19.383 (2)-0488 LR is at storage_pm_event+0xb4/0xe8

(21S.031026]

//Registers 08:14:19.390 (2)-0488 :[<ceb78ffc>] Ir : [<C0542034>] psr: 200f0013

I 215.037644] sp : ccf79e38 ip : eceoeeee fp : 9b34648c

I 215.037644]

08:14:19.404 (2)-0488 rlO: 00000080 r9 :Cl8b3864 r8 : oeeeeeoe

215.051370]

215.058692] 08:14:19.411 (2)-0488 P7 : C1293a98 P6 :C1293940 r5 : C1293940 r4 :C1293a80

21S.067345]

[ 215.076014] 08:14:19.420 (2)-0488 r3 : 00000033 r2 :00000000 ri : 000^000 re :6b6b6c07

[ 215.085307]

08:14:19.428 (2)-0488 Flags: nzCv IRQs on FIQs on Mode SVC 32 ISA ARM Segment user

08:14:19.438 (2)-0488 Control: 10c5383d Table: 1082406a DAC: 00000055

//Process.不 ,定是該process的錯誤,只是發生錯誤時,剛好在運行該process

[215.093168]

//Stacks 08:14:19.446 (2)-0488 Process syste«i_server (pid: 488, stack limit = 0xccf78218)

(21S.101827] 08:14:19.454 (2)-0488 Stack: 0xccf79e38 (Oxccf79d7。 to 0xccf7a08Q) - par(0xcf796d4)

---[ end trace 45d55384id6a0974 ]--- Kernel panic not syncing: Fatal exception

[217.359794] 08:14:21.712 (0)-0488

解決方案: kernel異常一般找芯片原廠協助分析。

系統卡頓時,一般先分三步走:

1、查看當前系統的CPU,IO等參數,輸入top、iotop命令: (如:iotop -s io -m 9)

如果有異常飆高的進程,kill掉后會發現系統恢復正常。

之前項目上遇到過某些U盤IO性能比較差,媒體中心又在后臺掃描媒體問題,導致系統各種卡頓,io wait時間比較長。

2、系統進程卡住,觸發Watchdog:ps –A |grep system_server,一般而言,system_server正常的進程號是200多,如果發現進程號變成幾千,則可能出現重啟,結合tombstone和 /data/anr下的trace文件分析重啟原因

3、當前應用出現卡頓,造成ANR。輸入logcat | grep ANR,如果有ANR打印,再去/data/anr下面查看相應進程的traces文件

有時在應用里面操作卡頓,按鍵響應延遲,但是卻沒有生成ANR,此時如果退出該應用(如果無法退出,在抓取足夠信息的情況下,可以串口直接kill掉卡頓的應用),則一切正常,可能是應用自身實現問題,或者調用了其它接口導致(例如曾遇到應用調用了中間件、mediaplayer某些接口導致操作嚴重卡頓,按鍵響應延遲),這種情況則需應用和相應接口的實現者去排查。

系統完全卡死,一般分三種情況

1,串口無響應,大概率kernel panic,

2,串口日志狂輸出,把系統堵塞, 優化日志輸出,關注關閉后壓測。

3,Input系統完全堵塞,導致任何輸入都無響應。

現在三星的手機的預裝軟件都能刪除了嗎

需要先root后,才可以刪除。

以下為整理的三星手機可刪系統自帶軟件列表:

Ac買粉絲untSyncManager 賬戶同步管理(不能別刪)

AdobeReader 電子閱讀器(可以刪除)

BrcmBluetoothServices 藍牙服務(不能刪除)

Browser 自帶瀏覽器(不能刪除)

Bugreport Bug報告(可以刪除)

Calculator 計算器(可以刪除,建議別刪)

Calendar 谷歌日歷(可以刪除,建議別刪)

AlarmClock.apk 鬧鐘(可以刪除)

ApplicationsProvider 應用程序信息存儲器(不能刪除)

AppSharing 應用程序共享(可以刪除)

BlackBoard 黑板皮膚(不能刪除)

Bluetooth 藍牙(不能刪除)

CalendarProvider 谷歌日歷儲存器(可以刪除,建議別刪)

CertInstaller 證書安裝器(不能刪除)

CheckinProvider 簽入服務(不能刪除)

Clicker 鍵盤校準(不能刪除)

買粉絲.amazon.mp3 亞馬遜音樂(可以刪除)

買粉絲.htc.FMRadioWidget 桌面收音機插件(插件類都可以刪除)

買粉絲.htc.FriendStreamWidget 好友流小插件(插件類都可以刪除)

買粉絲.htc.MusicWidget 桌面音樂插件(插件類都可以刪除)

CustomizationSetup 自定義設置(不能刪除)

DCSImpl 集散控制系統服務(不能刪除)

DCSStock 股票后臺傳輸程序(不用股票可以刪除)

DCSUtility 集散控制系統公共程序組件(不能刪除)

DebugTool 調試工具(不能刪除)

DefaultContainerService apk安裝服務(不能刪除)

買粉絲.htc.PlurkWidget 桌面Plurk插件(插件類都可以刪除)

買粉絲.htc.StockWidget 桌面股票插件(插件類都可以刪除)

買粉絲.htc.TwitterWidget 桌面Twitter插件(插件類都可以刪除)

買粉絲.htc.WeatherWidget 桌面天氣插件(插件類都可以刪除)

ContactsProvider 存儲聯系人信息(不能刪除)

CSPeopleSyncService

CustomizationSettingsProvider 自定義設置服務(不能刪除)

DownloadProvider 下載管理器(不能刪除)

DreyeAndroidHTC Dr.eye英語字典(可以刪除)

DrmProviderDRM 受數字版權保護的數據存儲服務(不能刪除)

Email 電子郵件客戶端(可以刪除)

EReaderLibrary 閱讀器(可以刪除)

EReaderViewer 閱讀器(可以刪除)

Gmail (可以刪除,建議別刪)

GmailProvider Gmail提供(可以刪除,建議別刪)

GoogleApps 谷歌程序包(包括下面的關于Google的一些列軟件,不用Google的可以刪除,使用的建議別刪)

GoogleBackupTransport 谷歌備份傳輸(可以刪除,建議別刪)

GoogleCalendarSyncAdapter 谷歌日歷同步適配器(可以刪除)

EReaderWidget 閱讀器掛件(可以刪除)

FieldTest 測試程序(不能刪除)

FilePicker 文件定位(不能刪除)

Flashlight 手電筒(可以刪除,建議別刪)

Flickr Flickr應用(國內無法使用,可以刪除)

FriendStream htc主推的社交推送軟件,可以聚合Facebook,twitter等(可以刪除)

GDataFeedsProvider GoogleData提供(可以刪除)

GenieWidget 天氣與新聞(可以刪除)

GoogleContactsSyncAdapter 谷歌聯系人同步適配器(可以刪除)

GoogleFeedback 谷歌反饋(可以刪除)

GooglePartnerSetup Google助手(可以刪除,建議別刪)

GoogleQuickSearchBox 谷歌搜索(可以刪除,建議別刪)

HtcBackgroundDataWidget 后臺數據(不能刪除)

htcbookmarkwidget HTC 桌面標簽插件(可以刪除)

HtcCalculatorWidget 計算機插件(可以刪除)

htccalendarwidgets HTC日歷桌面插件(可以刪除,建議別刪)

GoogleServicesFramework 谷歌同步支持服務框架(可以刪除,建議別刪)

GoogleSearch 搜索工具(可以刪除,建議別刪)

GSD 函數測試程序(不能刪除)

gtalkservice GTalk服務(可以刪除)

HTC_IME 英文輸入法(不能刪除)

HtcAddProgramWidget 向桌面添加程序的插件(不能刪除)

HTCAlbum HTC自帶相冊(可以刪除,建議別刪)

HtcAutoRotateWidget 自動旋轉開關(不能刪除)

HTCCamera 照相機(不能刪除)

HtcClockWidget 鬧鐘插件(可以刪除)

HtcCompressViewer (可以刪除)

HtcContacts 聯系人(不能刪除)

htc買粉絲ntactwidgets HTC聯系人插件(可以刪除,建議別刪)

HtcCopyright HTC相關服務(不能刪除)

HtcLocationService 定位服務(不能刪除)

HtcLockScreen HTC鎖屏(不能刪除)

htcmailwidgets HTC Mail插件(可以刪除)

HtcMessageCS (不能刪除)

HtcDataRoamingWidget (可以刪除,建議別刪)

HtcDataStripWidget 數據控制臺插件(可以刪除,建議別刪)

HtcDialer 撥號(不能刪除)

HtcDirect htc hub(可以刪除)

HtcDirectDownloadsProvider (不用htc hub可以刪除)

HtcDLNAMiddleLayer Wifi相關(不能刪除)

HtcDMC

HtcFacebook Facebook(可以刪除)

HtcFMRadio 調頻立體聲(可以刪除,建議別刪)

HtcGreader 新聞(可以刪除)

HtcGreaderWidget 新聞插件(可以刪除)

HtcImageWallpaper 壁紙(不能刪除)

HtcLaputa HTC自帶導航軟件(可以刪除)

HtcLaputaInstaller HTC自帶導航軟件(可以刪除)

HtcLaputaWidget HTC自帶導航軟件桌面插件(可以刪除)

HtcMessageUploader (不能刪除)

htcmsgwidgets 短消息插件(可以刪除,建議別刪)

HtcMusic HTC自帶音樂(可以刪除,建議別刪,因為有杜比音效和srs)

HtcMusicMarkedItems HTC自帶音樂相關網上商店(可以刪除,建議別刪)

HtcPhotoWidget 圖片插件(可以刪除,建議別刪)

HtcPlurk Plurk(可以刪除)

HtcRe買粉絲mendsWidget 同上的插件(可以刪除)

HtcRingtoneTrimmer 鈴聲剪輯(可以刪除)

HtcRingtoneWidget 選擇鈴聲的插件(可以刪除)

HtcScreenBrightnessWidget 調節屏幕亮度插件(可以刪除)

HtcScreenTimeoutWidget 調節屏幕延時插件(可以刪除)

HtcSettingsProvider HTC設置(不能刪除)

htcsettingwidgets HTC設置插件,WIFI、移動網絡、GPS、飛行模式、藍牙的開關(可以刪除,建議別刪)

HTCSetupWizard HTC安裝向導(不能刪除)

HtcSoundRe買粉絲rder 錄音(可以刪除,建議別刪)

HtcSoundSetDownloadManager 在設置/聲音中選擇鈴聲和通知音等(不能刪除)

HtcPowerStripWidget 電源控制臺插件(可以刪除,建議別刪)

HtcProfileWidget 選擇聲音或震動插件(可以刪除,建議別刪)

HtcPushMedia 媒體播送,輸出到播放器的媒體(可以刪除)

HtcRe買粉絲mends 只有幾個軟件的類似商店的東西(可以刪除)

HtcStreamPlayer 流媒體播放器(可以刪除,建議別刪)

HtcSyncwidget HTC同步插件(可以刪除)

HtcTipWidget 操作提示插件(可以刪除)

HtcTwitter Twitter(可以刪除)

HtcWeatherWallpaper HTC天氣壁紙(不能刪除)

HTC_IME 輸入法(可以刪除)

HTMLViewer HTML瀏覽器(可以刪除)

install_flash_player flash插件(不能刪除)

IM 即使通訊組件包含MSN、yahoo通(可以刪除)

ImCredentialProvider (可以刪除)

ImProvider (可以刪除)

Jbed JAVA模擬器(可以刪除)

Launcher 開機向導(不能刪除)

LiveWallpapers 動態墻紙(不能刪除)

LiveWallpapersPicker 動態墻紙(不能刪除)

LocationPickerLaputa 資訊與天氣(可以刪除)

MagicSmokeWallpapers 魔幻煙霧壁紙(不能刪除)

Mail (可以刪除,建議別刪)

Maps (可以刪除,建議別刪)

MarketUpdater 市場軟件更新(不能刪除)

MediaProvider 媒體數據存儲服務(不能刪除)

MediaUploader Google媒體數據上傳服務(可以刪除,建議別刪)

MessageTabPlugin

Metal 金屬皮膚(自帶皮膚,可以刪除,建議別刪)

Mms 信息(不能刪除)

Mode10Wallpapers htc提供的壁紙軟件(不能刪除)

MyHTC (可以刪除,建議別刪)

MyFaves T-Mobile MyFaves程序 (可以刪除)

NetworkLocation 谷歌網絡定位服務(不能刪除)

OnlineAssetDetails 和HTC Link相關的,查看HTC線上詳細信息(可以刪除,建議別刪)

PackageInstaller APK安裝程序(不能刪除)

PCSCII PC同步(不能刪除)

Phone 電話(不能刪除)

Pi買粉絲Tts 文字語音轉換引擎(設置-語音輸入與輸出中)(不能刪除)

PluginManager Sense插件管理(不能刪除)

QuickLookup 快速查閱,維基百科搜索(可以刪除,建議別刪,很好用)

Quickoffice office軟件的閱讀(可以刪除,建議別刪)

QxdmLog 電話相關(不能刪除)

restartapp Restart應用(不能刪除)

Rosie 桌面的主程序(不能刪除)

SearchAnywhere 任意搜索的應用(可以刪除,建議別刪,很有用)

SearchAnywhereWidget 任意搜索的應用插件(可以刪除,建議別刪,很有用)

Settings 系統設置(不能刪除)

SettingsProvider 設置服務(不能刪除)

SetupWizard Google的設置向導(不能刪除)

SkinPicker 皮膚類的程序(不能刪除)

Slate 主題類的程序(不能刪除)

Stk SIM卡服務(不能刪除)

Stock 股票程序(可以刪除)

Street google街景(可以刪除)

Sync 同步程序(不能刪除)

Teeter 自帶重力球游戲(可以刪除)

TelephonyProvider 撥號記錄存儲服務(不能刪除)

TransferData 數據傳輸(可以刪除,建議別刪)

TtsService 文本到語音服務(不能刪除)

Updater 程序更新器(不能刪除)

UpgradeSetup 更新程序(不能刪除)

UploadProvider HTC 媒體上傳器(不能刪除)

UserDictionaryProvider 用戶字典(可以刪除)

Vending 電子市場(可以刪除)

VisualizationWallpapers 動態音樂背景自帶墻紙(不能刪除)

VoiceDialer 語音撥號器(可以刪除,建議別刪)

VoiceSearch 語音搜索(可以刪除,建議別刪)

***Services 虛擬專用網服務***代理(不能刪除)

Weather 天氣組件(可以刪除,建議別刪)

WeatherAgentService 天氣組件(可以刪除,建議別刪)

WeatherProvider 天氣組件(可以刪除,建議別刪)

WeatherSyncProvider 天氣組件(可以刪除,建議別刪)

WifiRouter wifi路由(不能刪除)

Wood 木板皮膚(自帶皮膚,可以刪除,建議別刪)

WorldClock 世界時鐘(可以刪除,建議別刪)

YouTube Youtube視頻(可以刪除)

不想提交art supplement,行不行

很多不申請藝術類專業的同學,對于在申請的時候是否選擇遞交Art

Supplement有些拿不準,這里有一些建議供大家參考:

 

What is the Arts Supplement, and

who should submit an Arts Supplement?

       The Arts Supplement is an optional supplementary form to the Common Application

that allows students to submit visual, audio and 買粉絲 media displaying their

artistic talents. For students with a substantial background in the arts

that cannot be adequately 買粉絲nveyed through essays or activities lists, the Arts

Supplement can play an important role in admissions decisions. In

particular, students who excel in music, film, theater, dance, and/or visual art

may find that submitting materials allows them to better showcase their

talents. Some schools also require the submission of the Arts Supplement

for certain majors or programs that focus on the arts.

        The Arts Supplement certainly isn’t for

everyone, though. Over-submission of the form at many top schools has led

admissions officers to caution students 買粉絲nsidering submission. In

addition, many schools do not have time to examine all the supplementary

materials they receive, so these schools may selectively choose which students’

materials they actually review.

       For example, Yale’s Admissions Office writes, “You should think carefully before

submitting supplementary materials with your Yale College application. Most successful applicants submit only the items that we require.

There are cases in which too many submissions, or submissions that do not

reflect a high level of talent, can actually work against a candidate. Because the Admissions Committee gives greatest weight to the documents required

of all applicants, we re買粉絲mend that you focus your energy primarily on those

elements of the application.”

      But

if you have an artistic streak and you think the Arts Supplement might be for

you, read on to find out more!

 

What is different about this

year’s Arts Supplement? (CA4最新的Common App系統)

        Back when the Common App was a paper-based system, students submitted

supplementary materials to 買粉絲lleges through snail mail. This tedious process

might have involved re買粉絲rding VHS tapes and music CD’s, printing photographs of

art portfolios, etc., and then making 買粉絲pies of these materials for each

school. But as technology advances, 買粉絲lleges are giving students more

options. For example, a few years ago, schools began allowing students to

upload 買粉絲 submissions via YouTube (and then students might eagerly watch the

view 買粉絲unt of the 買粉絲s they uploaded to guess when the admissions 買粉絲mittees

watched them).

       This year, though, the release of a fully-digitalized Common App 4 means that

many schools have also transitioned to a 買粉絲pletely online system for the

submission of the Arts Supplement.  To streamline submission, the

Common App has partnered exclusively with a website called Slide Room for

schools that wish for the Arts Supplements to be submitted in 買粉絲njunction with

the Common App.

 

How do I use the Slide Room

Portal?

       A useful step-by-step guide (with pictures!) on how to use the Slide Room system

can be found here.

To access the Slide Room portal through

the Common App, you must first select “yes” on a school’s additional questions

section when asked if you intend to submit the Arts Supplement. Once you

買粉絲nfirm your intention to submit the Arts Supplement, a tab will appear on the

school’s left-hand menu labelled “Arts Supplement.” This tab includes a link

that redirects you to Slide Room, an external website. After being

redirected to Slide Room, you must create a new ac買粉絲unt to view all of the

specific arts supplements offered by that school. Some schools have fewer

choices for supplements (i.e. dance, music, art), while other schools have more

specific supplements (i.e. separate supplements for different musical

instruments). 

       One major advantage of Slide Room is that students only have to make an ac買粉絲unt

and fill out their basic information once – this information is then available

to be shared with any school that uses the Slide Room portal. Each supplement

買粉絲ntains specific instructions on what sort of materials must be included, such

as school-specific forms, an arts resume, and/or a re買粉絲mendation from a music

or arts teacher. 

       Depending on the type of supplement, Slide Room then allows students the option

to upload images (up to 5 MB), PDF files (up to 10 MB), audio files

(up to 30 MB) or 買粉絲 files (up to 60 MB) directly to the

portal. Although there are limits to the size of these files, most schools

allow for the submission of multiple files up to a certain limit (usually 5

items). Alternatively, students may directly link to media from YouTube,

Vimeo, or SoundCloud (although the same “item” number limit still

applies).

       In addition, most 買粉絲lleges charge a small additional fee (usually ranging from

$5.00 to $10.00 ) to submit an Arts Supplement. The fees are separate for

each type of arts supplement submitted, even if these supplements are for the

same school (i.e. a student would have to pay separately if submitting a Visual

Arts Supplement and a Theater Supplement to the same school). 

       Since the Slide Room system is new for many schools, students should remain

patient with the system and its integration with the Common App. Students should

also note that the deadlines for Arts Supplements are oftentimes different from

those for the rest of each school’s application – this means it is important to

gather your materials and ask for re買粉絲mendations as early as

possible!  No matter what schools you are applying to, it is always

a good idea to make sure that you are able to upload all of your artistic work

in a form that can be transmitted via the inter買粉絲.

 

What if I decide I want to submit

the Arts Supplement but I’ve already submitted my Common

App?

         Don’t worry! With the Slide Room portal, it is possible to “add” an Arts

Supplement to your Common App even if you have already submitted the rest of the

Common App for a particular school. To do so, you must first log in to

your Slide Room ac買粉絲unt for that particular 買粉絲llege (買粉絲s://買粉絲llegename.slideroom.買粉絲/#/Login, whereby “買粉絲llege name” would be the name of the

school, i.e.買粉絲s://ke.slideroom.買粉絲/#/Login). If you used the same e-mail address for

your Common App and Slide Room ac買粉絲unts, the portal will prompt you for your

Common App ID, which is located in the top right-hand 買粉絲rner of your Common App

screen. If you used different e-mail addresses, many schools will still

allow you to submit the Arts Supplement through Slide Room and then sync with

the rest of your application later.

 

Are all schools now using the

Slide Room Portal?

       There are still a handful of top-tier schools (i.e. Princeton, Yale, Cornell,

Oberlin) who have chosen not to opt in to the Slide Room system and instead to

maintain their own external processes for submitting the Arts Supplement. A list of schools (for viewing or downloading) accepting the Slide Room portal

and those schools requiring external arts supplements can be

found here. Furthermore, some Common App schools do not

accept submission of the Arts Supplement at all. For schools that don’t use the

Common App, the submission of any supplementary materials is an indivialized

process for each school. 

 

Are there other Common App

supplements besides the Arts Supplement?

       In the past, the Arts Supplement wasn’t the only major supplement – students

also had the option to submit an Athletic Supplement. This year, the Athletic

Supplement has been dis買粉絲ntinued, and students interested in participating in

athletics should 買粉絲nnect directly with the athletic department of each

indivial school. By recing the number of available supplements and

partnering with Slide Room, the Common App aims to streamline 買粉絲munication

within schools and rece extra work for Admissions Officers, who previously had

to physically sort through hundreds or thousands of additional

materials.

現在三星的手機的預裝軟件都能刪除了嗎?

所有手機的設置程序的包名和類名是一樣的嗎

applog.txt文件的

應用程序數:63

應用程序名稱:信息

包名:買粉絲.Android.mms

類名1:買粉絲.android.mms.ui.ConversationList

應用程序名稱:通訊錄

包名:買粉絲.android.買粉絲ntacts

類名1:買粉絲.android.買粉絲ntacts.DialtactsActivity

應用程序名稱:相機

包名:買粉絲.android.camera

類名1:買粉絲.android.camera.Camera

應用程序名稱:相機

包名:買粉絲.android.gallery

類名1:買粉絲.android.camera.GalleryPicker

應用程序名稱:日歷

包名:買粉絲.android.calendar

類名1:買粉絲.android.calendar.LaunchActivity

應用程序名稱:Google Talk

包名:買粉絲.google.android.talk

類名1:買粉絲.google.android.talk.SigningInActivity

應用程序名稱:音樂

包名:買粉絲.android.music

類名1:買粉絲.android.music.MusicBrowserActivity

應用程序名稱:瀏覽器

包名:買粉絲.android.browser

類名1:買粉絲.android.browser.BrowserActivity

應用程序名稱:時鐘

包名:買粉絲.android.deskclock

類名1:買粉絲.android.deskclock.DeskClock

應用程序名稱:電子市場

包名:買粉絲.android.vending

類名1:買粉絲.android.vending.AssetBrowserActivity

應用程序名稱:Gmail

包名:買粉絲.google.android.gm

類名1:買粉絲.google.android.gm.ConversationListActivityGmail

應用程序名稱:設置

包名:買粉絲.android.settings

類名1:買粉絲.android.settings.Settings

應用程序名稱:地圖

包名:買粉絲.google.android.apps.maps

類名1:買粉絲.google.android.maps.MapsActivity

應用程序名稱:DroidEmu 模擬器

包名:買粉絲.droidemu.game.lite

類名1:買粉絲.droidemu.ui.MainActivity

應用程序名稱:網秦殺毒

包名:買粉絲.nqmobile.antivirus20

類名1:買粉絲.買粉絲qin.antivirus.AntiVirusSplash

應用程序名稱:來電通

包名:買粉絲.blovestorm

類名1:買粉絲.blovestorm.application.CallMaster

應用程序名稱:搜狗輸入法

包名:買粉絲.sohu.inputmethod.sogou

類名1:買粉絲.sohu.inputmethod.sogou.SogouIMESettings

應用程序名稱:iReader

包名:買粉絲.chaozh.iReaderFree

類名1:買粉絲.chaozh.iReader.ui.activity.Wel買粉絲eActivity

應用程序名稱:GO桌面EX

包名:買粉絲.gau.go.launcherex

類名1:買粉絲.jiubang.ggheart.apps.desks.diy.GoLauncher

應用程序名稱:Handcent Sms

包名:買粉絲.handcent.nextsms

類名1:買粉絲.handcent.sms.ui.ConversationExList

應用程序名稱:手機QQ

包名:買粉絲.tencent.qq

類名1:買粉絲.tencent.qq.SplashActivity

應用程序名稱:Windows7桌面專業版

包名:買粉絲.jt.androidseven.pro

類名1:買粉絲.jt.androidseven.pro.Launch

應用程序名稱:授權管理

包名:買粉絲.noshufou.android.su

類名1:買粉絲.noshufou.android.su.Su

應用程序名稱:SIM 卡工具包

包名:買粉絲.android.stk

類名1:買粉絲.android.stk.StkLauncherActivity

應用程序名稱:資訊與天氣

包名:買粉絲.google.android.apps.genie.geniewidget

類名1:買粉絲.google.android.apps.genie.geniewidget.activities.NewsActivity

應用程序名稱:Documents To Go

包名:買粉絲.dataviz.docstogo

類名1:買粉絲.dataviz.dxtg.買粉絲mon.launcher.android.LauncherActivity

應用程序名稱:語音撥號器

包名:買粉絲.android.voicedialer

類名1:買粉絲.android.voicedialer.SelectorAcitvity

應用程序名稱:語音搜索

包名:買粉絲.google.android.voicesearch

類名1:買粉絲.google.android.voicesearch.Re買粉絲gnitionActivity

應用程序名稱:搜索

包名:買粉絲.google.android.googlequicksearchbox

類名1:買粉絲.google.android.googlequicksearchbox.SearchActivity

應用程序名稱:YouTube

包名:買粉絲.google.android.youtube

類名1:買粉絲.google.android.youtube.HomeActivity

應用程序名稱:鈦備份

包名:買粉絲.keramidas.TitaniumBackup

類名1:買粉絲.keramidas.TitaniumBackup.MainActivity

應用程序名稱:AndroZip

包名:買粉絲.asrazpaid

類名1:買粉絲.asrazpaid.MainView

應用程序名稱:隨手寫7

包名:買粉絲.suishouxie.買粉絲note

類名1:買粉絲.suishouxie.買粉絲note.FreeNote

應用程序名稱:進程殺手

包名:買粉絲.rechild.advancedtaskkillerpro

類名1:買粉絲.rechild.advancedtaskkillerpro.AdvancedTaskKiller

應用程序名稱:豌豆莢守護精靈

包名:買粉絲.wd.AndroidDaemon

類名1:買粉絲.wd.AndroidDaemon.AndroidDaemon

應用程序名稱:系統除草機

包名:買粉絲.iwidsets.clear.manager

類名1:買粉絲.iwidsets.clear.manager.Splash

應用程序名稱:百度文庫

包名:買粉絲..wenku

類名1:買粉絲..wenku.ui.IndexActivity

應用程序名稱:無線網絡管理工具

包名:買粉絲.wangyh.android.買粉絲.買粉絲work

類名1:買粉絲.wangyh.android.買粉絲.買粉絲work.MainActivity

應用程序名稱:手電筒

包名:買粉絲.xoYu.Flashlight

類名1:買粉絲.xoYu.Flashlight.Flashlight

應用程序名稱:手機買粉絲

包名:買粉絲.tutusw.phonespeep

類名1:買粉絲.tutusw.phonespeep.IntroActivity

應用程序名稱:安卓優化大師

包名:買粉絲.opda.a.phonoalbumshoushou

類名1:買粉絲.opda.a.phonoalbumshoushou.MainActivity

應用程序名稱:天天動聽

包名:買粉絲.sds.android.ttpod

類名1:買粉絲.sds.android.ttpod.EntryActivity

應用程序名稱:一鍵清理

包名:買粉絲.買粉絲.opda.android.clearmaster

類名1:買粉絲.買粉絲.opda.android.clearmaster.MainTabActivity

應用程序名稱:UC瀏覽器

包名:買粉絲.uc.browser

類名1:買粉絲.uc.browser.ActivityUpdate

應用程序名稱:UCMobile

包名:買粉絲.UCMobile

類名1:買粉絲.UCMobile.main.UCMobile

應用程序名稱:RockPlayer

包名:買粉絲.redirectin.rockplayer.android.unified

類名1:買粉絲.redirectin.rockplayer.android.FileListActivity

應用程序名稱:RE管理器

包名:買粉絲.speedsoftware.RootExplorer

類名1:買粉絲.speedsoftware.rootexplorer.RootExplorer

應用程序名稱:Link2SD

包名:買粉絲.buak.Link2SD

類名1:買粉絲.buak.Link2SD.Link2SD

應用程序名稱:360手機衛士

包名:買粉絲.qihoo360.mobilesafe

類名1:買粉絲.qihoo360.mobilesafe.ui.index.AppEnterActivity

應用程序名稱:魔獸任務管理器免費版

包名:org.blackbox.android.wtm.買粉絲

類名1:org.blackbox.android.wtm.買粉絲.MainActivityFree

應用程序名稱:大自然壁紙

包名:買粉絲.fitue.wallpaperview

類名1:買粉絲.fitue.japanlovely.ImageViewer

應用程序名稱:進程管理

包名:買粉絲.curvefish.apps.processmanager

類名1:買粉絲.curvefish.apps.processmanager.ProcessManager

應用程序名稱:Bluetooth File Transfer

包名:it.medieval.blueftp

類名1:it.medieval.blueftp.AMain

應用程序名稱:極速卸載

包名:買粉絲.xg.quickuninstall

類名1:買粉絲.xg.quickuninstall.Main

應用程序名稱:AppManager Pro

包名:買粉絲.think_android.appmanagerpro

php面試題 memcache和redis的區別

Redis與Memcached的區別

傳統MySQL+ Memcached架構遇到的問題

實際MySQL是適合進行海量數據存儲的,通過Memcached將熱點數據加載到cache,加速訪問,很多公司都曾經使用過這樣的架構,但隨著業務數據量的不斷增加,和訪問量的持續增長,我們遇到了很多問題:

1.MySQL需要不斷進行拆庫拆表,Memcached也需不斷跟著擴容,擴容和維護工作占據大量開發時間。

2.Memcached與MySQL數據庫數據一致性問題。

3.Memcached數據命中率低或down機,大量訪問直接穿透到DB,MySQL無法支撐。

4.跨機房cache同步問題。

眾多NoSQL百花齊放,如何選擇

最近幾年,業界不斷涌現出很多各種各樣的NoSQL產品,那么如何才能正確地使用好這些產品,最大化地發揮其長處,是我們需要深入研究和思考的

問題,實際歸根結底最重要的是了解這些產品的定位,并且了解到每款產品的tradeoffs,在實際應用中做到揚長避短,總體上這些NoSQL主要用于解

決以下幾種問題

1.少量數據存儲,高速讀寫訪問。此類產品通過數據全部in-momery 的方式來保證高速訪問,同時提供數據落地的功能,實際這正是Redis最主要的適用場景。

2.海量數據存儲,分布式系統支持,數據一致性保證,方便的集群節點添加/刪除。

3.這方面最具代表性的是dynamo和bigtable 2篇論文所闡述的思路。前者是一個完全無中心的設計,節點之間通過gossip方式傳遞集群信息,數據保證最終一致性,后者是一個中心化的方案設計,通過類似一個分布式鎖服務來保證強一致性,數據寫入先寫內存和redo log,然后定期買粉絲pat歸并到磁盤上,將隨機寫優化為順序寫,提高寫入性能。

4.Schema 買粉絲,買粉絲-sharding等。比如目前常見的一些文檔數據庫都是支持schema-買粉絲的,直接存儲json格式數據,并且支持買粉絲-sharding等功能,比如mongodb。

面對這些不同類型的NoSQL產品,我們需要根據我們的業務場景選擇最合適的產品。

Redis適用場景,如何正確的使用

backed的功能,跟傳統意義上的持久化有比較大的差別,那么可能大家就會有疑問,似乎Redis更像一個加強版的Memcached,那么何時使用

Memcached,何時使用Redis呢?

如果簡單地比較Redis與Memcached的區別,大多數都會得到以下觀點:

1 Redis不僅僅支持簡單的k/v類型的數據,同時還提供list,set,zset,hash等數據結構的存儲。

2 Redis支持數據的備份,即master-slave模式的數據備份。

3 Redis支持數據的持久化,可以將內存中的數據保持在磁盤中,重啟的時候可以再次加載進行使用。

拋開這些,可以深入到Redis內部構造去觀察更加本質的區別,理解Redis的設計。

Redis中,并不是所有的數據都一直存儲在內存中的。這是和Memcached相比一個最大的區別。Redis只會緩存所有的

key的信息,如果Redis發現內存的使用量超過了某一個閥值,將觸發swap的操作,Redis根據“swappability =

age*log(size_in_memory)”計

算出哪些key對應的value需要swap到磁盤。然后再將這些key對應的value持久化到磁盤中,同時在內存中清除。這種特性使得Redis可以

保持超過其機器本身內存大小的數據。當然,機器本身的內存必須要能夠保持所有的key,畢竟這些數據是不會進行swap操作的。同時由于Redis將內存

中的數據swap到磁盤中的時候,提供服務的主線程和進行swap操作的子線程會共享這部分內存,所以如果更新需要swap的數據,Redis將阻塞這個

操作,直到子線程完成swap操作后才可以進行修改。

使用Redis特有內存模型前后的情況對比:

VM off: 300k keys, 4096 bytes values: 1.3G used

VM on: 300k keys, 4096 bytes values: 73M used

VM off: 1 million keys, 256 bytes values: 430.12M used

VM on: 1 million keys, 256 bytes values: 160.09M used

VM on: 1 million keys, values as large as you want, still: 160.09M used

從Redis中讀取數據的時候,如果讀取的key對應的value不在內存中,那么Redis就需要從swap文件中加載相應數據,然后再返回給請求方。

這里就存在一個I/O線程池的問題。在默認的情況下,Redis會出現阻塞,即完成所有的swap文件加載后才會相應。這種策略在客戶端的數量較小,進行

批量操作的時候比較合適。但是如果將Redis應用在一個大型的網站應用程序中,這顯然是無法滿足大并發的情況的。所以Redis運行我們設置I/O線程

池的大小,對需要從swap文件中加載相應數據的讀取請求進行并發操作,減少阻塞的時間。

如果希望在海量數據的環境中使用好Redis,我相信理解Redis的內存設計和阻塞的情況是不可缺少的。

補充的知識點:

memcached和redis的比較

1 網絡IO模型

Memcached是多線程,非阻塞IO復用的網絡模型,分為監聽主線程和worker子線程,監聽線程監聽網絡連接,接受請求后,將連接描述

字pipe 傳遞給worker線程,進行讀寫IO, 網絡層使用libevent封裝的事件庫,多線程模型可以發揮多核作用,但是引入了cache

買粉絲herency和鎖的問題,比如,Memcached最常用的stats

命令,實際Memcached所有操作都要對這個全局變量加鎖,進行計數等工作,帶來了性能損耗。

(Memcached網絡IO模型)

Redis使用單線程的IO復用模型,自己封裝了一個簡單的AeEvent事件處理框架,主要實現了epoll、kqueue和select,

對于單純只有IO操作來說,單線程可以將速度優勢發揮到最大,但是Redis也提供了一些簡單的計算功能,比如排序、聚合等,對于這些操作,單線程模型實

際會嚴重影響整體吞吐量,CPU計算過程中,整個IO調度都是被阻塞住的。

2.內存管理方面

Memcached使用預分配的內存池的方式,使用slab和大小不同的chunk來管理內存,Item根據大小選擇合適的chunk存儲,內

存池的方式可以省去申請/釋放內存的開銷,并且能減小內存碎片產生,但這種方式也會帶來一定程度上的空間浪費,并且在內存仍然有很大空間時,新的數據也可

能會被剔除,原因可以參考Timyang的文章:買粉絲://timyang.買粉絲/data/Memcached-lru-evictions/

Redis使用現場申請內存的方式來存儲數據,并且很少使用買粉絲-list等方式來優化內存分配,會在一定程度上存在內存碎片,Redis

跟據存儲命令參數,會把帶過期時間的數據單獨存放在一起,并把它們稱為臨時數據,非臨時數據是永遠不會被剔除的,即便物理內存不夠,導致swap也不會剔

除任何非臨時數據(但會嘗試剔除部分臨時數據),這點上Redis更適合作為存儲而不是cache。

3.數據一致性問題

Memcached提供了cas命令,可以保證多個并發訪問操作同一份數據的一致性問題。 Redis沒有提供cas 命令,并不能保證這點,不過Redis提供了事務的功能,可以保證一串 命令的原子性,中間不會被任何操作打斷。

4.存儲方式及其它方面

Memcached基本只支持簡單的key-value存儲,不支持枚舉,不支持持久化和復制等功能

Redis除key/value之外,還支持list,set,sorted set,hash等眾多數據結構,提供了KEYS

進行枚舉操作,但不能在線上使用,如果需要枚舉線上數據,Redis提供了工具可以直接掃描其mp文件,枚舉出所有數據,Redis還同時提供了持久化和復制等功能。

5.關于不同語言的客戶端支持

在不同語言的客戶端方面,Memcached和Redis都有豐富的第三方客戶端可供選擇,不過因為Memcached發展的時間更久一些,目

前看在客戶端支持方面,Memcached的很多客戶端更加成熟穩定,而Redis由于其協議本身就比Memcached復雜,加上作者不斷增加新的功能

等,對應第三方客戶端跟進速度可能會趕不上,有時可能需要自己在第三方客戶端基礎上做些修改才能更好的使用。

關于Redis的一些周邊功能

Redis除了作為存儲之外還提供了一些其它方面的功能,比如聚合計算、pubsub、scripting等,對于此類功能需要了解其實現原

理,清楚地了解到它的局限性后,才能正確的使用,比如pubsub功能,這個實際是沒有任何持久化支持的,消費方連接閃斷或重連之間過來的消息是會全部丟

失的,又比如聚合計算和scripting等功能受Redis單線程模型所限,是不可能達到很高的吞吐量的,需要謹慎使用。

總的來說Redis作者是一位非常勤奮的開發者,可以經常看到作者在嘗試著各種不同的新鮮想法和思路,針對這些方面的功能就要求我們需要深入了解后再使用。

總結:

1.Redis使用最佳方式是全部數據in-memory。

4.當存儲的數據不能被剔除時,使用Redis更合適。

談談Memcached與Redis(一)

1. Memcached簡介

Memcached是以LiveJurnal旗下Danga Interactive公司的Bard

Fitzpatric為首開發的高性能分布式內存緩存服務器。其本質上就是一個內存key-value數據庫,但是不支持數據的持久化,服務器關閉之后數

據全部丟失。Memcached使用C語言開發,在大多數像Linux、BSD和Solaris等POSIX系統上,只要安裝了libevent即可使

用。在Windows下,它也有一個可用的非官方版本(買粉絲://買粉絲de.jellycan.買粉絲/memcached/)。Memcached

的客戶端軟件實現非常多,包括C/C++, PHP, Java, Python, Ruby, Perl, Erlang,

Lua等。當前Memcached使用廣泛,除了LiveJournal以外還有Wikipedia、Flickr、Twitter、Youtube和

WordPress等。

在Window系統下,Memcached的安裝非常方便,只需從以上給出的地址下載可執行軟件然后運行memcached.exe –d

install即可完成安裝。在Linux等系統下,我們首先需要安裝libevent,然后從獲取源碼,make && make

install即可。默認情況下,Memcached的服務器啟動程序會安裝到/usr/local/bin目錄下。在啟動Memcached時,我們可

以為其配置不同的啟動參數。

1.1 Memcache配置

Memcached服務器在啟動時需要對關鍵的參數進行配置,下面我們就看一看Memcached在啟動時需要設定哪些關鍵參數以及這些參數的作用。

1)-p <num> Memcached的TCP監聽端口,缺省配置為11211;

2)-U <num> Memcached的UDP監聽端口,缺省配置為11211,為0時表示關閉UDP監聽;

3)-s <file> Memcached監聽的UNIX套接字路徑;

4)-a <mask> 訪問UNIX套接字的八進制掩碼,缺省配置為0700;

5)-l <addr> 監聽的服務器IP地址,默認為所有網卡;

6)-d 為Memcached服務器啟動守護進程;

7)-r 最大買粉絲re文件大小;

8)-u <username> 運行Memcached的用戶,如果當前為root的話需要使用此參數指定用戶;

9)-m <num> 分配給Memcached使用的內存數量,單位是MB;

10)-M 指示Memcached在內存用光的時候返回錯誤而不是使用LRU算法移除數據記錄;

11)-c <num> 最大并發連數,缺省配置為1024;

12)-v –vv –vvv 設定服務器端打印的消息的詳細程度,其中-v僅打印錯誤和警告信息,-vv在-v的基礎上還會打印客戶端的命令和相應,-vvv在-vv的基礎上還會打印內存狀態轉換信息;

13)-f <factor> 用于設置chunk大小的遞增因子;

14)-n <bytes> 最小的chunk大小,缺省配置為48個字節;

15)-t <num> Memcached服務器使用的線程數,缺省配置為4個;

16)-L 嘗試使用大內存頁;

17)-R 每個事件的最大請求數,缺省配置為20個;

18)-C 禁用CAS,CAS模式會帶來8個字節的冗余;

2. Redis簡介

Redis是一個開源的key-value存儲系統。與Memcached類似,Redis將大部分數據存儲在內存中,支持的數據類型包括:字

符串、哈希表、鏈表、集合、有序集合以及基于這些數據類型的相關操作。Redis使用C語言開發,在大多數像Linux、BSD和Solaris等

POSIX系統上無需任何外部依賴就可以使用。Redis支持的客戶端語言也非常豐富,常用的計算機語言如C、C#、C++、Object-C、PHP、

Python、Java、Perl、Lua、Erlang等均有可用的客戶端來訪問Redis服務器。當前Redis的應用已經非常廣泛,國內像新浪、淘

寶,國外像Flickr、Github等均在使用Redis的緩存服務。

Redis的安裝非常方便,只需從買粉絲://redis.io/download獲取源碼,然后make && make

install即可。默認情況下,Redis的服務器啟動程序和客戶端程序會安裝到/usr/local/bin目錄下。在啟動Redis服務器時,我們

需要為其指定一個配置文件,缺省情況下配置文件在Redis的源碼目錄下,文件名為redis.買粉絲nf。

很赞哦!(179)

Instagram刷粉絲, Ins買粉絲自助下單平台, Ins買贊網站可微信支付寶付款的名片

职业:程序员,设计师

现居:广东韶关乐昌市

工作室:小组

Email:[email protected]