查JVM參數(shù)就找JVMPocket(JVM口袋)小程序
概述
前段時(shí)間,微信小程序突然火了,某天公眾號突然收到個消息,說可以綁定微信小程序了,還可以面向個人,對新鮮玩意我向來比較有興趣,很想嘗鮮一下,于是想我可以搗鼓個怎樣的小程序來玩玩呢?
正巧有人發(fā)了封郵件給我詢問GC相關(guān)的問題,我告訴他一個JVM參數(shù)就能解決掉了,再想想這塊確實(shí)困擾過大部分有調(diào)優(yōu)經(jīng)歷的JAVA程序猿們,那就做一個JVM參數(shù)相關(guān)的小程序吧!
我正式做Java差不多7年了,對Java有著比較深的情結(jié),之前一直停留在上層做中間件,后面因工作需要又轉(zhuǎn)做JVM,這些年查了不少問題,積累了不少經(jīng)驗(yàn),對Java的了解程度也越來越深,一開始碰到GC的問題,也是各種查資料,查代碼,找參數(shù),慢慢地只要一看到現(xiàn)象就會有相關(guān)的參數(shù)浮現(xiàn)出來,所以做這個應(yīng)該還是可以造福大家的。
既然定下來要做這個,那產(chǎn)品主要做什么,解決哪些痛點(diǎn)呢,試想我們平時(shí)針對JVM參數(shù)都有些什么疑惑?
- 哎呀,這個JVM參數(shù)是什么意思?
- 怎么一升級JDK版本這個參數(shù)的默認(rèn)值就變了?
- 怎么來使用這個參數(shù)?
- 這個參數(shù)使用的時(shí)候要注意些什么?
聊聊JVMPoeckt(JVM口袋)
這個產(chǎn)品,不,其實(shí)應(yīng)該說是個小工具,我希望它能解決上面的這些問題,更希望大家看到或者想到JVM參數(shù)就能想到JVMPocket(JVM口袋或許好記些,不過口袋得換成英文),顧名思義就是口袋里的JVM,大家隨時(shí)隨地都能掏出手機(jī)解決某些JVM相關(guān)的問題,當(dāng)然現(xiàn)在能解決的問題還很有限。
主要提供的能力包括如下幾點(diǎn):
- 查詢參數(shù)的具體含義
- 查詢每個參數(shù)在不同平臺不同版本上的默認(rèn)值
- 查詢參數(shù)怎么使用的
- 給予這個參數(shù)一定的建議
可點(diǎn)擊上面小程序進(jìn)入體驗(yàn)。
下面是我在這個小程序上的一些思考。
V0.1
我最初的設(shè)計(jì)思路是兩個菜單:
- 手動輸入?yún)?shù)或者參數(shù)列表
- 拍照圖像識別參數(shù)
不過從實(shí)際體驗(yàn)來看,手動輸入實(shí)在太麻煩,畢竟在手機(jī)上操作不是很順嘛(我對參數(shù)相對熟點(diǎn),所以能很快輸入,所以一開始這個問題沒看太重),拍照識別那個雖然很符合手機(jī)端體驗(yàn),但是我短時(shí)間無法做得很好,還得找個時(shí)間弄弄。
于是我花了一個周末的時(shí)間完成了第一個版本,發(fā)布上去了,在我的微信公眾號菜單里加了一項(xiàng)菜單。
V0.2
雖然發(fā)出去了,但是沒有通知大家有這么個東西,所以大部分時(shí)間還是我自己在玩,當(dāng)然每天還是有點(diǎn)人來玩的,用著用著我發(fā)現(xiàn)了一些問題:
雖然大小寫可以不敏感,但是每次都要參數(shù)輸全,還是比較蛋疼的。
很多用戶根本不知道要輸入什么,所以只能亂輸,比如123,abc啥的。
于是新的版本想解決掉這些問題。
用戶可以輸入?yún)?shù)名稱的部分內(nèi)容,后端自動做匹配,找出匹配度最高的那個參數(shù)。
用戶可以默認(rèn)不輸入內(nèi)容,當(dāng)輸入為空直接點(diǎn)擊查詢的時(shí)候,默認(rèn)提供幾個參數(shù)的輸出結(jié)果。
這個版本上去之后,自己用得都爽多了,總算可以讓不知道參數(shù)是什么的人能看到個大概效果了。
V0.3
后面有不少人反饋,其實(shí)大家都不知道有哪些參數(shù),雖然隨便輸入個參數(shù)能看到某個匹配的參數(shù)的結(jié)果,但是這個并不一定是他們想查詢的參數(shù),圖像識別功能還未提供,所以還是先提供一個參數(shù)列表的頁面,參數(shù)根據(jù)首字母排序,可以通過首字母定位到具體的首字母是它的參數(shù)列表,然后選中某個參數(shù)列出某個參數(shù)的結(jié)果。
這個上去之后大家至少不需要自己輸入?yún)?shù)了,而且能找到自己想找但是一直模凌兩可的參數(shù)了。
后續(xù)
目前還只發(fā)布了3個版本,后續(xù)有時(shí)間我還會做更多的優(yōu)化,包括用戶體驗(yàn)的,包括產(chǎn)品完善的,比如參數(shù)建議里提供更多的經(jīng)驗(yàn)等。
另外大家覺得還有個更大的問題就是我不知道我要用什么參數(shù)來解決我現(xiàn)在碰到的問題,我想說這個真的需要積累,說實(shí)話我很多參數(shù)也沒用過,憑我在阿里解決這么多年的問題經(jīng)驗(yàn)來看,其實(shí)常見的那些個參數(shù)摸透了也就差不多了,所以后續(xù)可能還會專門提取出這些常用的參數(shù)出來給大家強(qiáng)調(diào)學(xué)習(xí)。
希望聽到大家使用后的反饋來不斷完整這個小程序。
如何找到JVMPocket
目前產(chǎn)品就這個效果,歡迎大家試玩,希望大家想到JVM參數(shù)就想到JVMPocket,可以通過如下途徑找到這個小程序。
- 在微信上直接搜索『JVMPocket』
- 關(guān)注我公眾號的用戶通過我的公眾號里的菜單『JVM口袋』進(jìn)入,也可以通過
- 未關(guān)注我的用戶,當(dāng)然可以先關(guān)注,如果實(shí)在不想,可以搜索我的微信公眾號『你假笨』,在關(guān)注頁面里會有個『相關(guān)小程序』,點(diǎn)擊直接進(jìn)入,不過您要是覺得『JVMPocket』好記,還是直接搜更方便
寫在最后
多的也不多說啦,還是那句話,希望大家想到JVM參數(shù)就想到JVMPocket,有JVM的疑難問題先是否發(fā)過類似的文章。
對了,看到上上篇文章訪問量挺高假笨說-又抓了一個導(dǎo)致頻繁GC的鬼--數(shù)組動態(tài)擴(kuò)容,但是其中有些內(nèi)容不夠嚴(yán)謹(jǐn),在上篇文章假笨說-關(guān)于數(shù)組動態(tài)擴(kuò)容導(dǎo)致頻繁GC的問題,我還有話說里做了補(bǔ)充說明,對之前那篇文章有過印象的建議看下這篇文章,其中提到了一個CMS的JVM參數(shù),大家可以結(jié)合這個小程序了解下,哈哈!
【本文是51CTO專欄作者李嘉鵬的原創(chuàng)文章,轉(zhuǎn)載請通過微信公眾號(你假笨,id:lovestblog)聯(lián)系作者本人獲取授權(quán)】