2011 年,當初選擇 Redis 作為主要的內存數據存儲,主要吸引我的是它提供多樣的基礎數據結構可以很方便的實現業務需求。另一方面又比較擔心它的性能是否足以支撐,畢竟當時 Redis 還屬于比較新的開源產品。但 Redis 官網宣稱其是提供多數據結構的高性能存儲,我們對其還是抱有幻想的。
最近在看一些Android應用性能優化的文章時,發現提到了SparseArray替代HashMap可以優化app性能,就對SparseArray做了一番了解,并記錄使用心得。
【編者按】關注 NoSQL 的動態發展很重要。NoSQL 的好處并不僅限于新的應用開發。在某些案例中,你可以見識到重新訪問現有的、傳統的框架帶來的積極效果,比如說你的 JPA 的實現。本文系國內ITOM 管理平臺OneAPM 編譯呈現。
都說『下層基礎決定上層建筑』,然而在互聯網軟件的實踐里,設計規劃時往往是至上而下進行的,從用戶需求到技術架構,再到框架選型、方案設計、模塊拆分,直到了最后才會發現是不是應該也考慮一下服務的運維設施,但畢竟那是上線以后的事情了,先實現能帶來業務價值的功能再說。
當數據沒有明確的順序時,集合(sets)和字典(dictionaries)都是理想的數據結構,一個Key唯一對應一個存儲對象, Key可以是一個string,也可以是任意一個hashable的對象。
提高程序的啟動速度意義重大,很顯然,啟動時間越短,用戶才越有耐心等待打開這個APP進行使用,反之啟動時間越長,用戶則越有可能來不及等到APP打開就已經切換到其他APP了。程序啟動過程中的那些復雜錯誤的操作很可能導致嚴重的性能問題。Android系統會根據用戶的操作行為調整程序的顯示策略,用來提高程序的顯示性能。
在Android開發中,View是我們必須要接觸的用來展示的技術.通常情況下隨著View視圖的越來越復雜,整體布局的性能也會隨之下降.這里介紹一個在某些場景下提升布局性能的View,它就是ViewStub.
Rust 現在的趨勢是:與 C++ 低端性能和簡潔相媲美,安全方面的話正在超越,在可預見的未來有著匹配表達能力的合理前景。C++ 是逐步發展的目標,僅保留傳統的兼容性要求與委員會政策,所以 Rust 將會需要不斷快速發展。Rust 如果可以隨時“跨越障礙”,十年之后,招募者都會以有著十年?Rust?開發經驗而驕傲的。
性能問題是造成App用戶流失的罪魁禍首之一。App的性能問題包括崩潰、網絡請求錯誤或超時、響應速度慢、列表滾動卡頓、流量大、耗電等等。而導致App性能低下的原因有很多,除去設備硬件和軟件的外部因素,其中大部分是開發者錯誤地使用線程、鎖、系統函數、編程范式、數據結構等導致的。即便是最有經驗的程序員,也很難在開發時就能避免所有導致性能低下的“坑”,因此解決性能問題的關鍵是在于能不能盡早地發現和定位這些“坑”。
用戶都 希望他們訪問的web應用是可交互且運行流暢的。因此,作為web開發者,你也要在這方面多花點功夫。你所做的頁面,不但要能被快速加載,還要能流暢運行:頁面的滾動要快速響應手指的動作,動畫和交互效果更要如絲般順滑。
若你想讓你的游戲有60楨/秒的體驗,你必須要做的就是在16浩渺內完成所有事:子彈運動,創建實體,控制碰撞,軌跡,變換場景,控制輸入,播放音效。主流的游戲循環中,你需要做到盡可能高效。即便在30楨/秒的體驗中,你也只有32毫秒去完成這一切。特別是當你想要讓游戲更加豐滿時,速度與效率會顯得尤為重要。
作為程序員,我們經常會聽到60fps和16ms這兩個重要值,同時我們會將程序是否達到60fps來作為App性能的衡量標準,這是因為人眼與大腦之間的協作無法感知超過60fps的畫面更新。
Faban 是Sun Microsystems 用純粹的Java 1.5+ 編寫的,而且在CDDL-1.0 許可下是開源的。
如果你正在使用Spring管理/訪問資源(Dao/Service),那么你可能也需要添加一些基礎的性能監控。在Spring AOP的幫助下這將變成一個簡單的任務,不需要任何現有代碼的變化,只是一些簡單的配置。
beetle是基于c#編寫的高性能Socket tcp組件,它基于SocketAsyncEventArgs的實現并提供了發送隊列和接收隊列的支持,可以根據情況靈活地設置1-N個發送隊列和接收隊列。除了隊列上的支持組件還提供Buffer緩沖池和基于Buffer的DataWriter,DataReader對象。
Python System Monitor (Psymon) 是一個跨平臺的任務和性能監控工具
Nginx(發音同 engine x)是一款輕量級的Web 服務器/反向代理服務器及電子郵件(IMAP/POP3)代理服務器,并在一個BSD-like 協議下發行。由俄羅斯的程序設計師Igor Sysoev所開發,最初供俄國大型的入口網站及搜尋引擎Rambler(俄文:Рамблер)使用。
MySQL數據庫是 IO 密集型的程序,和其他數據庫一樣,主要功能就是數據的持久化以及數據的管理工作。本文側重通過優化MySQL 數據庫緩存參數如查詢緩存,表緩存,日志緩存,索引緩存,innodb緩存,插入緩存,以及連接參數等方式來對MySQL數據庫進行優化。
BuckyClient 是一款直接從用戶瀏覽器檢測Web應用程序性能的免費、開源工具,可以自動獲取頁面加載情況和AJAX 請求。Bucky不僅快速,高效,而且是輕量級的開源工具,壓縮后JavaScript不到4KB。
Sniper是一個功能強大、高性能的HTTP負載工具,采用Golang編寫。利用協程并發優勢,實現海量并發、超低內存占用、豐富圖表展示。是測試、分析、優化服務端性能的絕佳助手!