使用JavaBean比Map作為引數在效能,維護性方面更好
現公司系統中基本都是使用的Map儲存,除少部分update或insert會建立javabean。每次都得到處找引數不說,開發也不方便。
考慮到是不是使用map在記憶體速度方面更勝一籌,也就沒說什麼。現在實際測試了下,測試結果如下:
建立10,000,000個bean,耗時:7138ms,記憶體佔用634m
建立10,000,000個map,CPU,記憶體滿了,最後Java heap space,沒有結果。
(資料大體上是這樣)
在建立物件數量不多的情況下,map比bean在速度上佔優勢,超過5000,map已不佔優勢,但差距不大。隨著數量的增加,javabean優勢越來越明顯。JavaBean只是在建立的時候耗時略長,map在put方面耗時則比這個時間長的多,資料量較大,map就完全處於劣勢。
少量使用map是可以提高開發速度,但在系統中大量使用map絕對不是明智之舉。系統執行中,肯定會建立大量物件,若是引數都是用Map進行傳遞,少量引數是比較方便,引數較多,還是使用Map無疑是災難,不管是效能方面,還是開發維護過程中。
相關推薦
使用JavaBean比Map作為引數在效能,維護性方面更好
現公司系統中基本都是使用的Map儲存,除少部分update或insert會建立javabean。每次都得到處找引數不說,開發也不方便。 考慮到是不是使用map在記憶體速度方面更勝一籌,也就沒說什麼。現在實際測試了下,測試結果如下: 建立10,000,000個bean,耗時
Kotlin將函式作為引數傳遞,使用雙冒號::引用其他方法
Kotlin 中 雙冒號操作符 表示把一個方法當做一個引數,傳遞到另一個方法中進行使用,通俗的來講就是引用一個方法。先來看一下例子: fun main(args: Array<String>) { println(lock("param1", "param2", ::get
C++ Thread類傳入某類的函式作為引數時,要在隨後傳入該類的物件
std::thread 呼叫類的成員函式需要傳遞類的一個物件作為引數: #include <thread> #include <iostream> class bar { public: void foo() { std::cout << "he
yolov3 官網文件 設計到編譯,訓練,map等引數測試,windows和linux均有說明
GitHub原文:https://github.com/AlexeyAB/darknet#how-to-compile-on-linux 參考部落格原址: https://blog.csdn.net/qq_34806812/article/details/813851
當函式使用結構體指標變數作為引數時,如果結構體中嵌套了結構體,應該如何呼叫其中的元素?
今天寫程式碼時突然遇到了這個問題,以前不曾探討過多層巢狀結構體指標變數的訪問,只知道結構體指標變數要訪問其元素時應該用 -> 來訪問,但對於結構體中巢狀有結構體的時候呢? 請看下面程式碼: #include “stdio.h” using namespac
包裝型別作為引數時,是值傳遞,不是引用傳遞
public static void fun(Integer i){ i=i+2; } public static void main(String[] args) { Integer p=new Integer(5); fun(p); System.out.p
基本資料型別的包裝型別作為引數傳遞,以及其他引用型別作為引數傳遞,以及List中值的交換的一些問題
public static void f(Integer i){ i = 2; //或者 i = new Integer(2) //這裡雖然涉及常量池,但是不考慮這個先,跟這個沒關係; } public static void main
什麽情況下用+運算符進行字符串連接比調用StringBuffer/StringBuilder對象的append方法連接字符串性能更好?
字符串拼接 build 字符串 字符串連接 操作 重新 運算 運算符 對象存儲 String一旦賦值或實例化後就不可更改,如果賦予新值將會重新開辟內存地址進行存儲。而StringBuffer類使用append和insert等方法改變字符串值時只是在原有對象存儲的內存地址上進
大資料、雲端計算、人工智慧,誰才有更好的發展?
雲端計算、大資料、人工智慧這三者的發展不能分開來講,三者是有著緊密聯絡的,互相聯絡,互相依託的,脫離了誰都不能更好的發展,讓我們具體來看一下! 一、大資料 大資料指無法在一定時間範圍內用常規軟體工具進行捕捉、管理和處理的資料集合,是需要新處理模式才能具有更強的決策力、洞察發現力和流程優化能力的海量、高增長
大數據、雲計算、人工智能,誰才有更好的發展?
vr技術 images 什麽是 RoCE 人類 中心 服務 復雜 軟件 雲計算、大數據、人工智能這三者的發展不能分開來講,三者是有著緊密聯系的,互相聯系,互相依托的,脫離了誰都不能更好的發展,讓我們具體來看一下! 一、大數據 大數據指無法在一定時間範圍內用常規軟件工具進行捕
點選圖片放大的效果(如果幫助大,關注我後期更好的作品奧)
第一步,要下載燈箱這個外掛 連線:連結: https://pan.baidu.com/s/1o1mYq5oIfo87YSQF9kjy8w 提取碼: used 下載並且解壓到本地 3.1本地的燈箱解壓如圖 進入src 目錄 如下圖 5.1 專案目錄如下 6.HTM
從身邊開源開始學習,用過才能更好理解程式碼
2015年12月20日,雲棲社群上線。2018年12月20日,雲棲社群3歲。 阿里巴巴常說“晴天修屋頂”。 在我們看來,寒冬中,最值得投資的是學習,是增厚的知識儲備。 所以社群特別製作了這個專輯——分享給開發者們20個彌足珍貴的成長感悟,50本書單。 多年以後,再回首2018-19年,留給我們自己的,
雲棲專輯 | 阿里開發者們的第3個感悟:從身邊開源開始學習,用過才能更好理解程式碼
2015年12月20日,雲棲社群上線。2018年12月20日,雲棲社群3歲。 阿里巴巴常說“晴天修屋頂”。 在我們看來,寒冬中,最值得投資的是學習,是增厚的知識儲備。 所以社群特別製作了這個專輯——分享給開發者們20個彌足珍貴的成長感悟,50本書單。 多年以後,再回首2018-19年,留給我們自
騰訊雲高階工程師:MySQL核心深度優化,這樣定製會更好
早期的CDB主要基於開源的Oracle MySQL分支,側重於優化運維和運營的OSS系統。在騰訊雲,因為使用者數的不斷增加,對CDB for MySQL提出越來越高的要求,騰訊雲CDB團隊針對使用者的需求和業界發展的技術趨勢,對CDB for MySQL分支進行深度的定製優化。優化重點圍繞核心效能、核心功能
【前端面試題】2018最新版前端面試題,只為找到更好的工作~~~
1.一些開放性題目1.自我介紹:除了基本個人資訊以外,面試官更想聽的是你與眾不同的地方和你的優勢。 2.專案介紹 3.如何看待前端開發? 4.平時是如何學習前端開發的? 5.未來三到五年的規劃是怎樣的? position的值, relative和absolute分別是
Django和SQLAlchemy,哪個Python ORM更好?
另一個 映射 數據 簡化 喜歡 運行 sch 單詞 不同 ORM是什麽? 在介紹Python下的兩個ORM框架(Django和SQLAlchemy)的區別之前,我們首先要充分了解ORM框架的用途。 ORM代表對象關系映射。ORM中的每個單詞解釋了他們在實際項目中的用途: 對
我的興趣是提升使用者使用網路、移動裝置或其他科技產品的體驗,以幫助使用者更好的使用科技產品。
開心網與F團高調“閃婚”,開心團購的產品與客戶服務將全部轉交給F團運營。與此同時,F團也在通過線上與騰訊、開心的合作,線下與維絡城合作,形成"3+1"的多維度佈局。騰訊是國內最大的即時通訊軟體大亨擁有6億多活躍使用者,同時“騰訊”對F團不只限於聚攏人氣,今年3月,騰訊為F團提供了數千萬美元的投資。儘管開心網自
腳踏實地,給自己一個更好的生活
1. C#語言方面 1.1 垃圾回收 垃圾回收解放了手工管理物件的工作,提高了程式的健壯性,但副作用就是程式程式碼可能對於物件建立變得隨意。 1.1.1 避免不必要的物件建立 由於垃圾回收的代價較高,所以C#程式開發要遵循的一個基本原則就是避免不必要的物件建立。以下列
阿里雲MVP:開發者的超能力,用技術創造更好世界
開發十年,就只剩下這套架構體系了! >>>
阿裏雲MVP:開發者的超能力,用技術創造更好世界
物聯網 ace 故事 上線 傳播 雲計 創業經歷 redis緩存 奧賽 阿裏雲MVP:開發者的超能力,用技術創造更好世界 2019年3月,第8期阿裏雲MVP(最有價值專家)完成終審,截至目前,全球已有27個國家和地區、近500位雲計算專家和優秀開發者成為阿裏雲MVP。阿裏雲