車上一顆螺絲的精密製作過程_包裝設計

南投搬家公司費用需注意的眉眉角角,別等搬了再說!

上新台中搬家公司提供您一套專業有效率且人性化的辦公室搬遷、公司行號搬家及工廠遷廠的搬家服務

看紅牛這個非常贊的視頻,記錄一顆螺絲從設計、到生產、最終投入使用的全部過程一一記錄下來。製造一個F1螺絲需要3名工程師工作12小時。這顆代號為RB12-FS-00663-02的螺絲,用於RB12賽車的前懸挂部分。之所以要拍這個視頻,就是想要告訴大家,F1賽車到底要做到多精密。

首先讓我們先介紹一下這顆螺絲的使用者,世界一級方程式賽車。

世界一級方程式錦標賽,簡稱F1。可能很多朋友對這項全球最昂貴的賽事並沒有十分了解,那先簡單介紹一下F1賽車。

以視頻中的紅牛車隊來說,一年的賽事預算2億英鎊,一台紅牛RB賽車造價就高達3000萬英鎊左右(包含研發等費用),換算成人民幣約等於2.4億,隨隨便便就秒掉十台八檯布加迪。搭載的1.6T V6超級發動機,馬力可以達到1000匹。全車重量大約600KG。目前賽道最快速度是舒馬赫在法拉利時期創下的375km/h。

F1賽車代表着汽車工業的最高科技,空氣動力學、ERS動能回收、超級發動機等等,且不說F1有多燒錢。除去錢以外,就是最頂尖的技術還有最嚴謹的態度,

※產品缺大量曝光嗎?你需要的是一流包裝設計!

窩窩觸角包含自媒體、自有平台及其他國家營銷業務等,多角化經營並具有國際觀的永續理念。

F1賽車的每一個零件都是車隊親自製造,就連一顆螺絲釘也不例外。往往這些最細微的部分就是勝負的關鍵,就連一顆螺絲釘也可以決定全年的錢有沒有白花。

看紅牛這個非常贊的視頻,記錄一顆螺絲從設計、到生產、最終投入使用的全部過程一一記錄下來。

製造一個F1螺絲需要3名工程師工作12小時。這顆代號為RB12-FS-00663-02的螺絲,用於RB12賽車的前懸挂部分。之所以要拍這個視頻,就是想要告訴大家,F1賽車到底要做到多精密。平時只看到賽車在比賽,完全沒有機會發現幕後是如何工作的。

連一個小小的零件都要如此複雜,每過一道程序就要反覆檢驗,精確到每一個螺紋齒。先別說能不能統計一台F1賽車有多少個零件組成,光一個引擎就有大約5000個零件。從設計、建模到生產製造。需要多少心思在上面。

不知道比賽中車手不爭氣撞壞了賽車的時候,幕後的工作人員想不想讓他好好爽爽。漢密爾頓在一次嚴重的撞車事故中,衝出賽道的那一刻,他自己說了當時的想法:“oh no,要修車了”。不擔心自己受傷,反而擔心要修車,這也是醉了。

本站聲明:網站內容來源於http://www.auto6s.com/,如有侵權,請聯繫我們,我們將及時處理

※自行創業缺乏曝光? 網頁設計幫您第一時間規劃公司的形象門面

網動廣告出品的網頁設計,採用精簡與質感的CSS語法,提升企業的專業形象與簡約舒適的瀏覽體驗,讓瀏覽者第一眼就愛上她。

方錦龍:我做國樂一定要好玩_貨運

※智慧手機時代的來臨,RWD網頁設計為架站首選

網動結合了許多網際網路業界的菁英共同研發簡單易操作的架站工具,及時性的更新,為客戶創造出更多的網路商機。

元旦剛過,各大電視台的跨年晚會相繼落幕,琵琶演奏家方錦龍又在網上火了。他在bilibili視頻網站(網友昵稱B站)舉辦的跨年晚會上的國樂跨界串燒表演令人大開眼界,“壯哉我大國樂”“雞皮疙瘩掉一地”“老爺子太厲害了”等引網友好評不斷。方錦龍接受記者的獨家專訪,講述了他這個節目的創意和幕後故事。

現場:古今中外樂器玩了個遍

方錦龍是一位“網紅”琵琶演奏家,此前他悠閑彈奏《琵琶語》的視頻給網友們留下深刻印象,隨後網友們又發現,他能演奏琵琶、笛、簫、二胡、骨笛等上百種樂器。這次參加B站的跨年晚會,他和當晚演出總監趙兆指揮的管弦樂團合作了一個十分多鐘的節目,再一次燃爆網絡。

在節目中,他一口氣彈奏了琵琶、高音琵琶、尺八、沖繩三味線等多種樂器,甚至還拿出一個像“鋸”的一樣的琴,左手拿着“鋸”,右手像拿着二胡弓子一樣演奏。“那是鋸琴,它來源於幾百年前意大利的伐木工人。”方錦龍介紹,B站邀請他登台這場晚會時,他知道B站的受眾都是年輕人,就想把古今中外的樂器向觀眾展示。

拿着古今中外的樂器,方錦龍和樂團演奏曲目都很跨界。《滄海一聲笑》《男兒當自強》兩首歌曲和中國古曲《將軍令》“嫁接”在一起,經過全新的編曲,來自不同曲目的旋律彷彿一問一答。演奏到高潮,方錦龍瘋狂掃弦,舞台上有電吉他迎合,氣勢恢宏又毫不違和。“琵琶本身就是有俠客之風的樂器,俠肝義膽是中國的民族精神,它和國樂的傳統精神是一致的,看得出來網友們也都很喜歡。”方錦龍有些得意。

※評比南投搬家公司費用收費行情懶人包大公開

搬家價格與搬家費用透明合理,不亂收費。本公司提供下列三種搬家計費方案,由資深專業組長到府估價,替客戶量身規劃選擇最經濟節省的計費方式

讓網友們更驚訝的是,這個節目的表演是帶劇情的。當美國鄉村民謠《哦,蘇珊娜》的旋律在樂隊中響起,方錦龍就在手邊的多件樂器中反覆挑選,彷彿沒一件樂器趁手,他乾脆不演奏任何樂器,而是用手在自己臉上“波兒”“波兒”地彈出聲音,每一聲的音高都不同。而當指揮說要演奏印度的樂器,方錦龍說:“印度的?那得有咖喱味,我來給你試試這個樂器,你看是不是有咖喱味。”說著,他用艾斯拉吉、西塔爾琴這兩種樂器演奏起來,隨後一大片彈幕飄過,幾乎都寫着:“果然有咖喱味!”

幕後:音樂的“樂”=快樂的“樂”

“這是我故意這麼設計的,我演奏樂器光演不行,還得說,這是我的‘方式脫口秀’。”方錦龍說,節目在策劃階段,他就想在其中加一點“小品”的表演成分,“從頭到尾地演,觀眾會疲憊,不知道我們在彈什麼,那我就輕鬆地講出來,這樣觀眾既能了解很多知識,還會覺得有趣。”

“一定要好玩”是方錦龍從事音樂一向秉持的原則,這是他深受觀眾喜愛的原因。對此他有自己的思考:“我們的音樂已經走出國門,但還未必走進國人的心裏。”方錦龍說,我們有那麼多大師級別的演奏家,在國際上打出中國的名號,給中國爭光。“但是在不少人心裏,很多音樂還停留在殿堂上,國人覺得它高雅,但可能不覺得這些音樂能走進生活。”方錦龍偏偏用傳統樂器演奏時尚的歌曲,甚至把自己當“人型樂器”,在自己臉上彈出旋律,就是為了讓大家覺得,“音樂的‘樂’和快樂的‘樂’其實是一回事”。

不過,用古典音樂或國樂演奏流行歌曲,一直被部分業內人士認為太簡單、太俗,甚至有些“掉價”,但方錦龍不這麼認為。“不要用這種觀念看待老百姓,這是老百姓喜歡的東西,尤其受年輕人喜歡,如果國樂永遠曲高和寡,最後肯定就沒有人傳承了。”方錦龍常常感慨,他自己從事音樂已經42年,但出名是在近10年。“前30年我也做傳統的協奏曲、組曲,這很重要,幫我打下了基礎,但近10年我開始跨界,這才走了出來。”

也就是在近10年中,他發覺越來越多的年輕人其實深愛着國樂,每次看到國樂的跨界演出都非常興奮,被傳統樂器的表現力折服。他這個被網友們稱為“老爺子”的人,也漸漸熟悉了年輕人在彈幕上的習慣用語:“收下我的膝蓋!”“這段演出,建議上春晚。”感受到觀眾的喜愛,方錦龍也跟着興奮起來:“一方水土養一方人,在中國長大的年輕人就有喜歡國樂的基礎,國樂的市場很大,但是需要開發。我們就是要找准年輕人喜歡什麼,把他們吸引過來!”(記者 韓軒)

本站聲明:網站內容來http://www.societynews.cn/html/wh/fq/,如有侵權,請聯繫我們,我們將及時處理

※回頭車貨運收費標準

宇安交通關係企業,自成立迄今,即秉持著「以誠待人」、「以實處事」的企業信念

濮存昕馮滿天打通國樂與朗誦_網頁設計公司

網頁設計公司推薦不同的風格,搶佔消費者視覺第一線

透過選單樣式的調整、圖片的縮放比例、文字的放大及段落的排版對應來給使用者最佳的瀏覽體驗,所以不用擔心有手機版網站兩個後台的問題,而視覺效果也是透過我們前端設計師優秀的空間比例設計,不會因為畫面變大變小而影響到整體視覺的美感。

1月2日,《聽見美·濮哥讀美文滿天昕光音樂朗誦會》在北京保利劇院精彩亮相,奉上一台融合朗誦、音樂和古今中外戲劇藝術的視聽盛宴。著名主持人白岩松也第三度受邀擔任演出主持人。

※想知道購買電動車哪裡補助最多?台中電動車補助資訊懶人包彙整

節能減碳愛地球是景泰電動車的理念,是創立景泰電動車行的初衷,滿意態度更是服務客戶的最高品質,我們的成長來自於你的推薦。

此次《聽見美·濮哥讀美文》音樂朗誦會名為“滿天昕光”,取自馮滿天和濮存昕兩位藝術家的名字,也寓意着2020年的聽見美·朗誦會如朝霞般美好燦爛。昨晚的演出在一群來自天成語言藝術學校的孩子們和滿天樂隊一起合作的兒童古詩朗誦中拉開帷幕。之後,在激蕩人心的即興阮聲伴奏下,濮存昕和馮滿天的樂隊一起默契配合出穿越古今又醇厚綿長的藝術和鳴,呈現出東坡居士《赤壁懷古》中“檣櫓灰飛煙滅”的萬丈豪情,贏得台下如潮掌聲。

關於這次合作,白岩松風趣透露道:“有的嘉賓來參加是應邀,而濮存昕面對馮滿天則是硬要。”濮存昕說:“在聽了他的演奏之後,感受到心靈的撞擊,我喜歡他的藝術,所以有了這次合作。”馮滿天也說:“音樂和文學從中國古代就密不可分。”下半場,“濮哥和他的朋友們”共同演繹的六部經典話劇作品片段也在此台演出中得以極為精彩地呈現。(記者王潤)

本站聲明:網站內容來http://www.societynews.cn/html/wh/fq/,如有侵權,請聯繫我們,我們將及時處理

南投搬家公司費用,距離,噸數怎麼算?達人教你簡易估價知識!

搬家費用:依消費者運送距離、搬運樓層、有無電梯、步行距離、特殊地形、超重物品等計價因素後,評估每車次單

多位國外 PS5 用戶反應 DualSense 控制器的觸覺反饋功能故障、R2 鍵鬆動_包裝設計

南投搬家公司費用需注意的眉眉角角,別等搬了再說!

上新台中搬家公司提供您一套專業有效率且人性化的辦公室搬遷、公司行號搬家及工廠遷廠的搬家服務

雖然一開始 PlayStation 5 的 Bugs 頻傳,不過已經有一陣子沒有新問題,原本以為應該就這樣了,沒想到最近又有疑似新災情出現,這次還不是遊戲主機,而是 PS5 中最讓玩家喜歡的全心 DualSense 控制器手把,國外陸續有玩家反應使用一陣子之後,觸覺反饋功能突然故障,而且是沒有任何外力撞擊就發生。

多位國外 PS5 用戶反應 DualSense 控制器的觸覺反饋功能故障

最近在國外 resetera 與 Reddit 論壇中,多位 PS5 玩家回報他們的 Dual Sense 控制器手把觸覺反饋功能有問題。像這位 EeK9X 提到,幾天前他在玩蜘蛛人遊戲時,突然感覺到 R2 鍵鬆動,然後瞬間變鬆,感覺就像是裡面有東西故障,隨後觸覺反饋就失效了:

而且他的 PS5 才玩不到 50 小時,非常新,一直以來也照顧的很好。他懷疑是內部彈簧脫落問題。

隨後也有玩家留言,他碰到一樣的狀況,而且也是 R2 這個鍵:

Reddit 早在一個月前,就有玩家反應 R2 彈簧鬆掉導致反饋功能失效,這位 mofftarkin33 是玩惡魔靈魂遊戲一週後發生,從外觀可以明顯看到 R2 鍵比 L2 還要鬆,接著他將 DualSense 控制器拆開之後發現,R2 的彈簧 90 度變形:

他拍攝的圖片:

View post on imgur.com

隨後他重新安裝彈簧,並調整角度就能正常使用了:

※產品缺大量曝光嗎?你需要的是一流包裝設計!

窩窩觸角包含自媒體、自有平台及其他國家營銷業務等,多角化經營並具有國際觀的永續理念。

View post on imgur.com

這位 beefalo16 用戶也碰到,他也認同 mofftarkin33 的看法:

雖然國外論壇有很多玩家反應,但留言處也有不少人留言說他們的 DualSense 完全正常,我的也是,至今已經完超過一個月,兩個控制器都沒發生這情形,所以也可能是個案。

另外如果你的 DualSense 也有這狀況,我不推薦自行拆開修復,畢竟現在一定還在保固內,直接送修 Sony 就好。

資料來源:resetera、Reddit

PlayStation 5 第一手搶先開箱!絕對是現今最值得入手的遊戲主機

您也許會喜歡:

【推爆】終身$0月租 打電話只要1元/分

立達合法徵信社-讓您安心的選擇

※自行創業缺乏曝光? 網頁設計幫您第一時間規劃公司的形象門面

網動廣告出品的網頁設計,採用精簡與質感的CSS語法,提升企業的專業形象與簡約舒適的瀏覽體驗,讓瀏覽者第一眼就愛上她。

不到10萬合資車配6AT!顏值逆天年輕人都想買?_貨運

※回頭車貨運收費標準

宇安交通關係企業,自成立迄今,即秉持著「以誠待人」、「以實處事」的企業信念

什麼。黑內飾是為與外觀相呼應了凸顯運動感。得了吧,這套內飾在設計也太平庸了,完全沒有外觀那種驚艷的感覺。配置歷來的韓系車的拿手好戲,悅納也不例外。主打年輕定位的悅納將蘋果的Carplay及百度Carlife手機互聯功能以及最新的人機交互系統集成在中控的七寸大屏內,不僅如此它還搭載了諸如智能后尾箱、H-band智能手環鑰匙等高科技裝備,這無疑是給像我這樣的年輕人提供了極大的便利。

近一兩年現代品牌似乎在國內市場的表現都不太盡如人意,自瑞納推出后,現代在國內好長時間一直沒能找到更好的換代車型。或許是因為主打家用市場的競爭對手太多,現代經過了一段“漫長”的考慮終於將一款主打年輕運動的小型車——VERNA“悅納”推向了市場。

細心的朋友肯定留意到了“VERNA”不就是北京現代瑞納的英文名怎麼變悅納了?其實這很好理解,就像當時的“Elantra”伊蘭特一樣,改款車型中文名改為悅動一樣,這就可以名正言順兩代同堂新老車型一同搶佔市場了。

車型定位什麼的我們可不關心,“VERNA”悅納駕駛起來到底怎樣才是最重要的,是騾子是馬,還得拉出來遛遛。多說無益,趕緊上車。此次我們試駕的目的地位於美麗的濱海城市—煙台,藉著這座城市的陽光與海灘我們將在此與悅納來一回浪漫邂逅。

外觀設計與原型車瑞納相比,悅納沒有了那種圓潤可愛、平易近人的感覺,換之而來的是更為凌厲的線條,前臉微微上揚的車燈造型搭配上鍍鉻裝飾件,顯得格外精緻。不得不承認的是悅納在外觀設計上,比起同期的致炫、威馳等車都要好看太多了。

我是一個喜歡揪細節的人,悅納設計前衛的可遠不止是前臉。來到車身側面,從翼子板一直延伸到車尾的腰線配合上溜背的造型,讓它看起來頗具COOpER車型的運動氣息。

如果你覺得悅納既然擁有如此靚麗的外觀,內飾的設計理應也十分出彩,那我想說這可能要讓你失望了。悅納的內飾走的是居家的風格,上黑下灰的內飾配色也顯得較為沉悶。什麼?黑內飾是為與外觀相呼應了凸顯運動感?得了吧,

※智慧手機時代的來臨,RWD網頁設計為架站首選

網動結合了許多網際網路業界的菁英共同研發簡單易操作的架站工具,及時性的更新,為客戶創造出更多的網路商機。

這套內飾在設計也太平庸了,完全沒有外觀那種驚艷的感覺。

配置歷來的韓系車的拿手好戲,悅納也不例外。主打年輕定位的悅納將蘋果的Carplay及百度Carlife手機互聯功能以及最新的人機交互系統集成在中控的七寸大屏內,不僅如此它還搭載了諸如智能后尾箱、H-band智能手環鑰匙等高科技裝備,這無疑是給像我這樣的年輕人提供了極大的便利。眾多的特色配置還並非是頂配車型專屬,這點更為難得。

如果只是替代鑰匙或許H—Band手環對於部分消費來講還不夠吸引力,但若是配合上智能尾箱的使用那絕對是“逼格滿滿”,試想一下你和女友去完超市手裡捧着採購的物品只需站在車尾處3秒尾箱就會自動打開,免去了掏鑰匙按車門的動作,簡直就是為您掙足了面子有木有!

說了這麼多,悅納的配置是夠豐富了,但開起來又是怎樣呢?抱着滿懷期待的心情,我們把悅納開上了濱海大道。本次我們試駕的車為1.6L排量的車型,悅納保持了韓系車一貫的舒適性風格,動力輸出線性自然,值得一提的是本次悅納所搭載的變速箱為6擋手自一體變速箱,這可比同級別使用4AT/CVT的車型有了不小的優勢。

日常駕駛,悅納發動機的噪音可以說是微乎其微,如果不下車在車上你甚至會懷疑它到底有沒有打着火,這真是要給它點個大大的贊!

【總結】悅納可以說定位非常準確,年輕帥氣的外觀,豐富的配置,在試駕完悅納后,編者可以說是被悅納深深所吸引,它不僅是一輛車,更是年輕人的潮流玩物。雖說如此,但要知道在小型車這個級別,致炫、飛度等車可都不是善茬,悅納要想在從中突圍一個合理的定價還是關鍵。本站聲明:網站內容來源於http://www.auto6s.com/,如有侵權,請聯繫我們,我們將及時處理

※評比南投搬家公司費用收費行情懶人包大公開

搬家價格與搬家費用透明合理,不亂收費。本公司提供下列三種搬家計費方案,由資深專業組長到府估價,替客戶量身規劃選擇最經濟節省的計費方式

這些12萬級別車型人見人愛 肯降價3萬銷量絕對翻兩倍!_網頁設計公司

南投搬家公司費用,距離,噸數怎麼算?達人教你簡易估價知識!

搬家費用:依消費者運送距離、搬運樓層、有無電梯、步行距離、特殊地形、超重物品等計價因素後,評估每車次單

有着1。6L、1。2T以及1。6T三款發動機可供選擇,動力性能以及操控都可以說是這個級別的佼佼者,但是油耗較高是制約其銷量的原因之一,其次還有着後排較小以及售價較高的缺點。3觀致3觀致3可以說是奇瑞旗下最完美的汽車,積聚奇瑞所擁有最先進的技術,有着一個顏值不低的外觀,一個在同價位中設計細緻做工優秀的內飾,雖然發動機性能在合資汽車中算是一般,但是底盤卻是該價位的領導者之一,在操控性能上甚至要比起福特福克斯更為優秀,據悉是高薪挖了寶馬底盤工程師的結果。

緊湊型轎車

“叫好不叫座”,這樣的事情是經常發生在汽車行業中的,它們在性能上或者是配置上都有着過人之處,或者擁有着大賣的潛質。但是在實際銷售中,它們的銷量卻異常的慘淡,這是為什麼呢?又有着那些車是這樣呢?

對於很多人來說,馬自達3昂克賽拉就像是一個夢中情人一樣,有着姣好的面容、性感的身材,還不時能給以你激情,看似各方面都是非常的完美。但是在實際的銷售中,昂克賽拉的銷量可以說是相當的一般,相對於豐田卡羅拉、日產軒逸越超三萬的銷量,

網頁設計公司推薦不同的風格,搶佔消費者視覺第一線

透過選單樣式的調整、圖片的縮放比例、文字的放大及段落的排版對應來給使用者最佳的瀏覽體驗,所以不用擔心有手機版網站兩個後台的問題,而視覺效果也是透過我們前端設計師優秀的空間比例設計,不會因為畫面變大變小而影響到整體視覺的美感。

昂克賽拉“只有”區區不到一萬的銷量,雖說還算不錯,但是要弱於他們不少的。原因首先是昂克賽拉真的如夢中情人一樣只能遠觀和單獨相處,後排空間非常局促,其次是高昂的售價、市場優惠小使得它一副高高在上的樣子,這樣就使得它銷量停滯不前。

308s是一輛濃郁異國風情的兩廂車,在外觀上非常的漂亮,能俘掠不少女性用戶的心,尾燈的設計往往讓人過目難忘。有着1.6L、1.2T以及1.6T三款發動機可供選擇,動力性能以及操控都可以說是這個級別的佼佼者,但是油耗較高是制約其銷量的原因之一,其次還有着後排較小以及售價較高的缺點。

觀致3

觀致3可以說是奇瑞旗下最完美的汽車,積聚奇瑞所擁有最先進的技術,有着一個顏值不低的外觀,一個在同價位中設計細緻做工優秀的內飾,雖然發動機性能在合資汽車中算是一般,但是底盤卻是該價位的領導者之一,在操控性能上甚至要比起福特福克斯更為優秀,據悉是高薪挖了寶馬底盤工程師的結果。但是這樣較高的性能也抵不過高昂售價帶來的影響,甚至比起合資轎車還要高的售價,以及4S店數量稀少,使得即使想要購買這款優秀的緊湊型轎車都成了大問題。

以上汽車歸根到底還是不能洞察我們消費者需求,對於我們來說一輛車最重要的是有着高可靠性、大空間以及親民的售價,這樣才是最為適合我們所購買的。本站聲明:網站內容來源於http://www.auto6s.com/,如有侵權,請聯繫我們,我們將及時處理

※想知道購買電動車哪裡補助最多?台中電動車補助資訊懶人包彙整

節能減碳愛地球是景泰電動車的理念,是創立景泰電動車行的初衷,滿意態度更是服務客戶的最高品質,我們的成長來自於你的推薦。

廣州大劇院2020年好戲不斷_包裝設計

※自行創業缺乏曝光? 網頁設計幫您第一時間規劃公司的形象門面

網動廣告出品的網頁設計,採用精簡與質感的CSS語法,提升企業的專業形象與簡約舒適的瀏覽體驗,讓瀏覽者第一眼就愛上她。

廣州大劇院2020演出季發布會近日在廣州大劇院舉行。發布會介紹了2020廣州大劇院的重點項目,今年廣州大劇院在歌劇、音樂劇、戲劇戲曲及舞劇等陣營上將繼續上演眾多重磅作品,演出陣容更是星光熠熠,濮存昕、徐帆、靳東、韓雪、阿雲嘎、鄭雲龍等實力派演員都將帶着自己的舞台作品登陸廣州大劇院。

今年將開啟“央地合作”

2020年,廣州大劇院迎來開業十周年。據介紹,十年來,有1300多个中外藝術團體和32000多名藝術家先後登上廣州大劇院的舞台,帶來了3900多場精彩表演和1800多場藝術活動。同時,廣州大劇院充分利用中演院線以及絲綢之路國際劇院聯盟等國內、國外的演藝平台和渠道,积極推動廣東演藝院團、優秀演藝項目“走出去”。2018年12月,廣州芭蕾舞團赴馬耳他瓦萊塔地中海會議中心演出《芭蕾詩篇》;2019年8月,廣州芭蕾舞團編創的現代芭蕾舞劇《布蘭詩歌》和民族芭蕾舞劇《洛神》登陸美國紐約林肯中心大衛·寇克劇院;2020年,廣州歌舞劇院的民族舞劇《醒·獅》將赴美國波士頓博赫中心舒伯特劇院、華盛頓肯尼迪中心歌劇院上演。作為廣州、廣東的大劇院,廣州大劇院也堅持紮根本土,弘揚嶺南文化,十年來,劇院累計上演廣東本土優秀劇目300餘場。

今年,廣州大劇院將開啟文化領域“央地合作”新征程,作為中演院線的旗艦劇院,依託院線資源與故宮博物院開展合作,開發聯名文創產品,開辦系列講座,讓一南一北兩座文化殿堂迸發新火花。

發布會現場還舉行了中演院線廣州大劇院戲劇藝術中心授牌儀式,邀請著名劇作家唐棟、著名戲劇導演傅勇凡、著名舞美設計師秦立運等業內大咖出謀划策,加強原創劇目生產。中演院線執行董事、總經理,廣州大劇院董事長張利表示:“廣州大劇院在向生產型劇院邁進。以前有《馬可·波羅》,之後,創作會成為常態。”此外,廣州大劇院還聯合星海音樂廳推出貝多芬誕辰250周年紀念系列,組織全球超過500名藝術家,呈現貝多芬作品的大全集。

南投搬家公司費用需注意的眉眉角角,別等搬了再說!

上新台中搬家公司提供您一套專業有效率且人性化的辦公室搬遷、公司行號搬家及工廠遷廠的搬家服務

2020年好戲提前看

歌劇方面,今年廣州大劇院又有大動作,原創歌劇《馬可·波羅》 院慶十周年特別版將上演。此次邀請到人氣與實力兼具的王凱、洪之光、劉彬濠等新生代演員加盟,還有田浩江、周曉琳、宋倩、劉穎等蜚聲海內外的歌唱家坐鎮,同時聯手廣東珠影樂團和深圳歌劇舞劇院,為“大灣區歌劇孵化基地”的初試啼聲打下堅實基礎。發布會上,洪之光獻演劇中詠嘆調,提前讓觀眾感受到該劇的魅力。洪之光透露,其在劇中飾演文天祥,這個角色圓了自己想演中國原創歌劇的願望。此外,中國歌劇舞劇院的民族歌劇《小二黑結婚》和德國波恩歌劇院的貝多芬誕辰250周年獻禮歌劇《費德里奧》也備受期待,歌劇《費德里奧》是貝多芬偉大的作品之一,該劇有關於愛、生命、自由的表達,也有對婚姻中美好與聖潔的讚美。

戲劇方面,今年廣州大劇院也將迎來多部重磅作品,包括國家大劇院與廣州話劇藝術中心聯合製作原創話劇《林則徐》、北京人民藝術劇院話劇《天下第一樓》、俄羅斯瑪斯特卡雅劇院話劇《靜靜的頓河》以及北京當代話劇團《麥克白》、莎翁經典《哈姆雷特》等。

音樂劇陣營更是流量與明星雲集,韓雪、劉令飛領銜主演年度爆款音樂劇《白夜行》。中文原創音樂劇《圖蘭朵》的製作由中外頂級團隊聯合打造。音樂戲劇《叢林之書》由法國最重要劇院之一的巴黎城市劇院特邀享譽世界的先鋒戲劇大師羅伯特·威爾遜執導,超現實民謠姐妹花可可羅希為該劇創作了獨特音樂和歌曲,以全新的形式再現奇幻世界。

舞蹈方面,楊麗萍作品《十面埋伏》備受期待,該劇以中國舞蹈為主調,融合行為、裝置藝術、民樂及傳統戲劇等綜合藝術語言創造了“舞蹈劇場”,“風暴舞者”胡沈員、朱鳳偉將加盟演繹。大型原創民族舞劇《花木蘭》同樣陣容強大,飾演花木蘭的是荷花獎金獎獲得者郝若琦。本土兩大原創舞劇《沙灣往事》《醒·獅》也將再次登台。

戲曲方面,去年以一出《穆桂英挂帥》在廣州掀起了戲曲熱的的國家京劇院今年將帶來《龍鳳呈祥》《滿江紅》《鳳還巢》三部京劇作品,繼續由於魁智、李勝素領銜主演。此外,今年仍有多個世界名團的音樂會登陸廣州大劇院,包括巴黎室內樂團與別列佐夫斯基音樂會、波恩貝多芬交響樂團貝多芬交響曲音樂會等,精彩不斷,驚喜不斷。(記者 徐紹娜)

本站聲明:網站內容來http://www.societynews.cn/html/wh/fq/,如有侵權,請聯繫我們,我們將及時處理

※產品缺大量曝光嗎?你需要的是一流包裝設計!

窩窩觸角包含自媒體、自有平台及其他國家營銷業務等,多角化經營並具有國際觀的永續理念。

2020本科校招-從小白到拿到30k offer的學習經歷_貨運

※回頭車貨運收費標準

宇安交通關係企業,自成立迄今,即秉持著「以誠待人」、「以實處事」的企業信念

本文是個人的2020年年中總結

還有十幾天就要畢業,面臨着身份從學生到互聯網社畜的轉變,未來的一切捉摸不定,但凡心中萬千情緒,也只能「但行好事,莫問前程」。

介紹下博主背景:計算機本科大四,剛進大三時還是個沒有實習、沒有項目經歷的小白,
經過一年時間的刻意練習[deliberate practice],最後在校招中拿到了一些大廠offer,
標題中30k的offer已經拒掉了,有了更好的去處,只是用來舉例。

文章同步自 https://github.com/mio4/interview

0x0 前期調研

以下經驗根據個人的經驗來談,有一定的局限性,僅供參考。

1. 為什麼不選擇算法

計算機專業的就業方向很多,對於應屆生來說,工種大概可以分為移動端、前端、後端、算法、運維、測試。

由於近年來ML和DL的快速發展,特別是16年AlphaGo以及視覺檢測、自然語言處理方向的進展,人工智能方向成為了繼大數據之後的又一個學術熱點。

周圍接觸到的同學,大部分集中於算法和後端方向。我最開始就是準備深入後端方向,並且決定本科直接就業。但是我有兩點糾結:

  1. 後端是否不如算法?
  2. 對於後端,本科學歷是否適合職業發展預期?
1. 本科生以算法作為工作目標難度太高,和字節跳動的面試官交流,目前字節AI Lab的成員組成是大部分碩博,以及少部分優秀的本科生(acm區域金作為參考)
2. 算法需要的三點:實習、競賽和paper,我都沒有信心和諸多轉專業的工科碩士抗衡
3. 個人對於算法沒有強烈興趣,發展空間不明朗,行業未來搭上5G的車,可能會有比較大的想象空間,風險和收益並存。

參考

2021 校招算法崗, 勸退還是繼續

如何看待 2020 屆校招算法工程師崗位求職人數遠大於招聘崗位的現象?

2. 為什麼選擇Java後端

如果認定了後端,後端語言這麼多,如何選擇適合自己的方向?

業界有一種說法:『語言只是工具,數據結構和算法是解決問題的根本』。這種說法本身是沒有錯的,但是從普遍來看,本科生從有工作的想法到秋招,只有(或者不到)一年的時間,泛泛了解多個方向不如深入特定方向,更有助於求職。

後端主要的開發語言有JavaC++PythonPHPGo,PHP目前除了百度和騰訊部分部門之外,使用範圍不廣,不予討論。另外,Golang作為高併發場景的常見支持,在雲計算領域使用比較廣泛。

互聯網和其他資本市場沒有本質區別,既然是市場,就存在供求關係。 對於算法這種供遠遠大於求的情況,就是買方市場,賣方(求職者)需要更好的產品(技能)來獲得同等的價格。對於應屆生來說,找到一個良好的買方市場,更加有利。

調研基於兩個預設條件:

  1. 崗位數目越多,市場的需求越大。
  2. 高薪崗位越多,該方向的發展前景越大。

我們參考www.lagou.com,互聯網大部分獵頭或者對外招聘崗位都會發布在上面,有一定的參考價值。

地點選擇北京,薪資範圍選擇25~50k/month。

Java

(1)職位500+,可以看出需求缺口很大

(2)除此之外,Java生態系統最為完善,e.g. Spring全家桶。

(3)Java是電商網站的技術首選,阿里、京東、拼多多等電商公司的技術棧。

Python

Python主要是作為腳本語言,適用於運維開發和算法崗位,目前在字節跳動使用比較廣泛,可以看出崗位相對較少。適合作為輔助開發語言,畢竟寫腳本算得上是程序員的必備技能了。

C++

C++是遊戲開發(其次還有lua)和系統開發的首選語言,但是因為上手成本比較高(指針和內存管理)以及需要對操作系統深入了解,市場崗位需求也不如Java,所以不推薦。不過如果有acm或者信息競賽基礎,也不成問題。

0x1 秋招準備

隨着互聯網從業人數越來越多,競爭也呈現白熱化。科班學生不僅要和同專業同學競爭,也會感受到轉專業同學(大部分是碩士)帶來的壓力。參考同系講師的數據,我航15年時6系本科同學比較容易就能去BAT,到了19年BAT頭條對於大部分同學不是想進就進了。

從宏觀意義上來看招聘,企業需要找到適配崗位的員工,學生需要謀取職業生涯的第一份工作。對於學生來說,秋招和高考在本質上是相似的,都是一種選拔,需要證明自己的能力比別人更強。

在準備的時候,定量的標準往往更加具有說服力,『我守望先鋒玩的很厲害』遠遠不如『我守望先鋒全國天梯4000分』,『我學習Java花了很多時間』不如『我閱讀了《Java核心思想》和《Effective Java》以及…,並且復現了書中的代碼,在github倉庫xxx』。

我是從2018.8月下旬(進入大三)開始準備,到找到工作總共花了一年的時間,基本上分為三個時期:

  1. 2018.8 – 2018.12 :基本素質培養
  2. 2019.1 – 2019.8 : 百度智能雲實習
  3. 2019.7 – 2019.8 : 秋招提前批

整個秋招的核心思路 = 基礎+實習+項目

1. 基本素質

第一次認清自己的水平,是在大二下學期結束的暑假。當時投了百度暑期實習,毫無準備的前提下,只用了20分鐘就掛在了一面。

面試慘跪之後,我分析了自己的處境,當時的我GPA排名40%,沒有參加過ACM程序競賽,沒有實習經驗,除了OO課程,沒有寫過”大型”項目。從編程能力上看,大一數據結構60分醬油飄過,算法課程也限於理論,只能說能夠應付考試不掛科,Java只會語法,web框架更是沒有項目經驗。

這時候的我深刻意識到自己在編程方面還是個在新手村找不到北的green hand,記得剛上大一的時候,哪位神仙說我校混的差躺着也能去BAT?夢想很美好,現實很骨感。

相對於隔壁北郵,我航更加註重學生的深造(校內讀研和出國留學),對於工作方面的指導甚少。我大部分的時間都是一個人準備,所以經常陷入迷茫orz,這期間主要的問題是:

  1. 選擇什麼方向? (前面已經對市場進行了就業分析)
  2. 要學習什麼內容?(算法太高級了,玩玩可以,找工作水平不夠)
  3. 要學到什麼程度,才能找到實習/工作?

整個秋招的過程,就是我解決這三個問題的過程。

於是,首先我使用Hexo + Github.io 搭建了個人博客:mio4

博客有兩個作用:

  1. 能夠體系化自己的學習,方便複習
  2. 量化自己的學習成果,面試的時候,給面試官帶來好印象

其次開始有針對性的訓練自己的編程能力,

Java程序員的基本素質有:Java基礎(語法+JVM+多線程),Spring框架(SSM/SpringBoot,進階可以SpringCloud),算法能力(刷題)

2. BAT實習

找工作本身就是一個經驗和需求矛盾的過程:

找實習,認準BAT TMD,其中BATT(頭條)基本屬於一個檔;外企的話,ms/hulu/airbnb認可度也很高。

拿周圍同學舉例,即使是小廠開了一個月8、9k的實習補助,也不要因此放棄BAT的實習機會。

※智慧手機時代的來臨,RWD網頁設計為架站首選

網動結合了許多網際網路業界的菁英共同研發簡單易操作的架站工具,及時性的更新,為客戶創造出更多的網路商機。

雖然近幾年百度已經明顯掉隊於BAT,但是就我個人體驗來看,外界對於百度的技術還是很認可的。對於實習來說,鍍金的效果完全夠用。【2020.5 update:目前應屆不滿一年沒有晉陞和普調資格,除非部門極好,否則不推薦轉正】

在2019.1月,托研二直系學長的福,內推經過三面通過了百度智能雲計算部的後端實習,面經:https://www.nowcoder.com/discuss/151829

到8月結束了實習,半年的實習時光對於工業屆有了更深入的了解。

3. 秋招面試

離開baidu主要有兩個原因:

  1. 工作內容不算滿意:在baidu的工作語言主要是php,大廠目前使用php的很少,不利於職業長期發展;另外實習負責的模塊也不算核心。
  2. 薪資不夠預期:baidu本科白菜價15k*15,每個月的工資扣掉五險一金和稅,只剩下11k,再加上北京動輒3、4k的房租,過於艱難。

因為花了接近一年時間準備,所以在提前批就結束了秋招,9月大部分企業剛開通秋招正式批通道前,我就歇了,真正準備校招的時間不足兩個月。【2020.5 update: offer這種東西當然是越多越好,去年的我太佛系了,騰訊、微軟、快手這些公司甚至沒投簡歷,現在覺得去年還是naive】

AI四小龍面過了兩家,都是sp | ssp,雲從當時沒聽說所以沒投,商湯提前批四道題A了三道解題報告,結果居然沒有不給面試機會Excuse me?

提前批收到了百度、字節跳動等大廠和一些獨角獸的offer,互聯網薪資保密,已經簽約的就不談具體待遇了。

拿個去年8月已經拒掉的獨角獸offer舉例:

0x2 其他經驗

1. 書籍推薦

國內csdn以及各種類似菜鳥教程的博客的知識系統往往支離破碎,不能深入學習。

看書能夠系統化學習知識,下面推薦我看過的一些書

  • 算法:

    • 《劍指Offer》
  • Java:

    • 《Java核心技術》,當字典看,不需要整遍過

    • 《Java併發編程實戰》 ,熟悉多線程

    • 《深入理解Java 虛擬機》,熟悉JVM必備

    • 《圖解Java多線程設計模式》,日本人寫的書,直觀易懂,強力推薦

    • 《Java 8實戰》

    • 《Effective Java》

  • Spring:

    • 《Spring實戰》
  • MySQL:

    • 《高性能MySQL》,主要是第五六章
    • 《Redis實戰》
  • 網絡:

    • 《圖解HTTP》
    • 《計算機網絡自頂向下方法》
  • 代碼規範:

    • 《重構》

2. 準備項目

對於在校學生來說,準備項目可能會面臨着無法下手的問題。

首先項目一般不是自己憑空想出來的,可以通過實驗室等方式接手比較成熟的方案。

我的操作是直接使用網課,比如慕課

選擇一個感興趣的,從0到1復現一個項目,完善自己的技術棧。

當然,imooc上大部分乾貨需要付費,學生黨如果沒錢可以考慮下面的方式:

蒲公英論壇:ipv6,好處是下載視頻不走校園網流量,有部分從imooc搬運的資源。

當然對於買不起資料的窮孩子,還是有灰色路徑可以『曲徑通幽』的,比如【已刪除】:盜版的論壇,基本上涵蓋所有imooc的視頻代碼資料,僅供參考。作為程序員,這裏盡量推薦支持正版。

3. 算法能力

面試必備:《劍指offer》 + LeetCode

LeetCode題目比較多,參考Hot/Top 100:

到秋招結束,刷題量不多,總共100左右,但是對每道題使用思維導圖進行總結,盡可能舉一反三:

4. 實習投遞

投遞實習的方式一般有:

  • [x] 熟人內推:最靠譜最快的方式,投遞簡歷到百度實習面試邀約只花了不到半天。

  • [x] 牛客網:響應時間一般,1~7天

  • [x] 實習僧app :響應時間一般,一般一周

  • [x] 官方通道:比如騰訊的暑期實習官方在線投遞。

4. 面試技巧

分公司分崗位的面經可參考:www.nowcoder.com

我的個人面經總結:https://github.com/mio4/learn-java/blob/master/Note/interview.md ,總共250頁的PDF,綜合個人經歷的所有面試,題目覆蓋率至少有50%。根據研二轉專業的同學反饋來看,作用很大。

本站聲明:網站內容來源於博客園,如有侵權,請聯繫我們,我們將及時處理

※評比南投搬家公司費用收費行情懶人包大公開

搬家價格與搬家費用透明合理,不亂收費。本公司提供下列三種搬家計費方案,由資深專業組長到府估價,替客戶量身規劃選擇最經濟節省的計費方式

記一次使用windbg排查內存泄漏的過程_網頁設計公司

網頁設計公司推薦不同的風格,搶佔消費者視覺第一線

透過選單樣式的調整、圖片的縮放比例、文字的放大及段落的排版對應來給使用者最佳的瀏覽體驗,所以不用擔心有手機版網站兩個後台的問題,而視覺效果也是透過我們前端設計師優秀的空間比例設計,不會因為畫面變大變小而影響到整體視覺的美感。

一、背景

  近期有一個項目在運行當中出現一些問題,程序順利啟動,但是觀察一陣子后發現內存使用總量在很緩慢地升高,

雖然偶爾還會往下降一些,但是總體還是不斷上升;內存運行6個小時候從33M上升到80M;

  程序存在內存泄漏是確定無疑的了,大概出問題的方向也知道,就是程序新加入一個採集協議(BACnet協議,MSTP_DLL),

但是怎麼把具體泄漏位置找出來卻非常麻煩,因為這個協議是封裝在一個C語言寫的動態庫中,想要單步調試好像不太可能,

況且源碼也不再我這裏;

  如果到此為止,推脫給其他同事找問題,那聯合調試費時不說。其他同事也身兼數職,不大可能有時間調試,

那項目推進肯定停滯;那沒辦法了,只能硬着頭皮上;網上了解一番,對於這種內存泄漏問題,比較好的處理方式就是

抓取內存快照,然後分析數據提交記錄,使用查看使用堆棧等信息;所以基於以上原因,選擇了windbg內核調試工具;

先分析一下看看,說不定可以發現問題;

 

二、windbg注意事項

1、首先要安裝對版本,即你的程序是32位還是64位,對於的windbg版本也要一致,否則會報錯;詳情了解:點擊這裏

2、需要用64位的任務管理器抓32位的dump文件,那不能直接在任務管理器右鍵“創建轉儲文件“,需要運行(C:\Windows\SysWOW64\taskmgr.exe)

3、或者直接在windbg上使用命令存儲,先附加到進程,然後使用命令:(.dump /ma c:\xxx.dmp),這樣就將快照保存在C盤了;

4、最重要的,要確保你的機器能連接外網;由於windbg的使用需要在線更新符號文件,但是這個地址剛好被國家防火牆屏蔽;

 

三、windbg必要設置

1、首先我先抓取2個內存快照文件(中間相隔一段時間),如下

 

 

2、打開windbg,設置符號下載路徑

將33.dmp直接拖進工作區即可,然後打開菜單File -> Symbol File Path

輸入地址:SRV*c:\symbols*http://msdl.microsoft.com/download/symbols

 

四、分析文件

1、分別打開兩個dmp文件,輸入命令!dumpheap -stat查看各種類型的內存分配情況

33.dmp
>.load C:\Windows\Microsoft.NET\Framework\v4.0.30319\SOS.dll >!dumpheap -stat ..... 61f87928 2292 34012 System.RuntimeType[] 5d2dbe74 267 34176 System.Data.DataColumn 61fd75e0 668 37408 System.Reflection.RuntimePropertyInfo 61f8426c 702 48976 System.Int32[] 5d2dcc24 70 72520 System.Data.RBTree`1+Node[[System.Data.DataRow, System.Data]][] 61f883e4 1242 84456 System.Reflection.RuntimeParameterInfo 61f8839c 2045 89980 System.Signature 0a7566bc 596 92976 HG.MacamUnit.Entity.TSubSysNodes 61f82788 723 117736 System.Object[] 61f89850 8 131696 System.Int64[] 61fd8938 2792 167520 System.Reflection.RuntimeMethodInfo 007988d0 220 434392 Free 61f824e4 12187 738904 System.String 61f85c40 2138 743067 System.Byte[] 61f82c60 294 6629796 System.Char[] Total 55014 objects
80.dmp
>.load C:\Windows\Microsoft.NET\Framework\v4.0.30319\SOS.dll
>!dumpheap -stat
.....
61f83698      876        24528 System.RuntimeType
61f84ec0      159        26472 System.Collections.Hashtable+bucket[]
61fc9020      631        27764 System.Reflection.RtFieldInfo
61f95be8       46        28392 System.Reflection.Emit.__FixupData[]
61f87928     2292        34012 System.RuntimeType[]
61fd75e0      668        37408 System.Reflection.RuntimePropertyInfo
5d2dcc24       42        43512 System.Data.RBTree`1+Node[[System.Data.DataRow, System.Data]][]
61f8426c      595        45868 System.Int32[]
61f883e4     1242        84456 System.Reflection.RuntimeParameterInfo
61f8839c     2045        89980 System.Signature
61f82788 622 113684 System.Object[] 61f89850 8 131696 System.Int64[] 61fd8938 2769 166140 System.Reflection.RuntimeMethodInfo 61f824e4 9800 676596 System.String 61f85c40 2064 705655 System.Byte[] 61f82c60 195 2369402 System.Char[] 007988d0 114 3338792 Free Total 47306 objects  

着重分析(紅色部分)這兩個文件的內存分配情況,似乎差別不大,完全看不出來80-33=近50M的內存消耗在哪裡;

但認真思考一下,這樣好像也沒有問題,因為System.***這種類型是C#環境獨有的,已知C#沒有內存泄漏,所以這裏沒有體現應該是正常的;

那C語言接口文件裡邊的問題該如何找出來呢?

 

2、再來試試!heap -s,查看各種堆的內存提交數據量

33.dmp

0:047> !heap -s
LFH Key                   : 0x343fce0b
Termination on corruption : ENABLED
  Heap     Flags   Reserv  Commit  Virt   Free  List   UCR  Virt  Lock  Fast 
                    (k)     (k)    (k)     (k) length      blocks cont. heap 
-----------------------------------------------------------------------------
00780000 00000002    8192   4636   8192    209  2484     4    0      e   LFH
002e0000 00001002     256      4    256      2     1     1    0      0      
00280000 00001002    1088     72   1088      5     2     2    0      0      
00c70000 00041002     256      4    256      2     1     1    0      0      
002d0000 00001002    1088    132   1088      8    23     2    0      0      
00450000 00001002     256      4    256      0     1     1    0      0      
07230000 00041002     256      4    256      2     1     1    0      0      
00c10000 00001002     256    216    256      3    39     1    0      0   LFH
09b50000 00001002     256     80    256     39    28     1    0      0      
09d00000 00001002      64      4     64      2     1     1    0      0      
09ef0000 00001002    1088     72   1088      6     2     2    0      0      
004c0000 00001002    1088    192   1088     15   140     2    0      0      
09760000 00041002     256     28    256      4     4     1    0      0      
09ed0000 00001002      64     12     64      1     1     1    0      0      
0b210000 00001002    3136   1456   3136     52    84     3    0      0   LFH
0a700000 00001002     256    212    256      2     1     1    0      0      
0e1e0000 00011002     256      4    256      0     1     1    0      0      
0d030000 00001002     256     16    256      3     1     1    0      0      
11b30000 00001002    1088    388   1088      0     1     2    0      0      
-----------------------------------------------------------------------------

 

80.dmp

0:051> !heap -s LFH Key : 0x343fce0b Termination on corruption : ENABLED Heap Flags Reserv Commit Virt Free List UCR Virt Lock Fast (k) (k) (k) (k) length blocks cont. heap ----------------------------------------------------------------------------- 00780000 00000002 8192 4808 8192 225 2505 4 0 f1 LFH 002e0000 00001002 256 4 256 2 1 1 0 0 00280000 00001002 1088 132 1088 4 6 2 0 0 00c70000 00041002 256 4 256 2 1 1 0 0 002d0000 00001002 1088 168 1088 12 26 2 0 0 00450000 00001002 256 4 256 0 1 1 0 0 07230000 00041002 256 4 256 2 1 1 0 0 00c10000 00001002 256 228 256 26 69 1 0 0 LFH 09b50000 00001002 256 80 256 39 25 1 0 0 09d00000 00001002 64 4 64 2 1 1 0 0 09ef0000 00001002 1088 132 1088 6 5 2 0 0 004c0000 00001002 1088 220 1088 26 173 2 0 0 09760000 00041002 256 28 256 4 8 1 0 0 09ed0000 00001002 64 12 64 1 1 1 0 0 0b210000 00001002 3136 1456 3136 74 71 3 0 0 LFH 0a700000 00001002 256 212 256 2 1 1 0 0 0e1e0000 00011002 256 4 256 0 1 1 0 0 0d030000 00001002 256 16 256 1 1 1 0 0 11b30000 00001002 47808 46068 47808 396 6836 7 0 0 -----------------------------------------------------------------------------

這次有異常了,可以看到11b30000這一行內存提交變化很大 47808 – 1088 = 46720;

這次可以肯定問題就在這個堆裡邊;

3、進去看看11b30000,使用命令:!heap -stat -h 11b30000

80.dmp


0:051> !heap -stat -h 11b30000 
 heap @ 11b30000
group-by: TOTSIZE max-display: 20
    size     #blocks     total     ( %) (percent of total busy bytes)
 1f0 102d9 - 1f58470 (92.48) 18 102b0 - 184080 (4.47) 10 102ae - 102ae0 (2.98)
    214 13 - 277c  (0.03)
    1000 2 - 2000  (0.02)
    800 2 - 1000  (0.01)
    220 1 - 220  (0.00)
    1d7 1 - 1d7  (0.00)
    80 3 - 180  (0.00)
    a4 1 - a4  (0.00)
    24 4 - 90  (0.00)
    14 4 - 50  (0.00)
    4a 1 - 4a  (0.00)
    25 2 - 4a  (0.00)
    48 1 - 48  (0.00)
    46 1 - 46  (0.00)
    41 1 - 41  (0.00)
    3e 1 - 3e  (0.00)
    3c 1 - 3c  (0.00)
    37 1 - 37  (0.00)

 

可以看到前面3項幾乎佔據99%的內存提交記錄;尤其以內存塊大小為1f0的數據塊使用最多內存;

到目前為止,我們知道了幾項有效信息,有大小分別為1f0、18、10的三種數據塊,不斷申請出新空間;

但是這樣還不夠,根據一個內存塊的大小並不能準確定位是哪裡出了問題,這是一個結構體?還是字符串?還是數組?

都不知道,所以有必要進去看看,有哪些地方使用到了這些數據塊

 

4、查看使用了1f0數據塊大小的位置列表,使用命令:!heap -flt s [size]

80.dmp

0:051> !heap -flt s 1f0
    _DPH_HEAP_ROOT @ 5a1000
    Freed and decommitted blocks
      DPH_HEAP_BLOCK : VirtAddr VirtSize
    Busy allocations
      DPH_HEAP_BLOCK : UserAddr  UserSize - VirtAddr VirtSize
    _HEAP @ 780000
      HEAP_ENTRY Size Prev Flags    UserPtr UserSize - state
        0078e5b8 0045 0000  [00]   0078e5e0    001f0 - (busy)
    _DPH_HEAP_ROOT @ 9d11000
    Freed and decommitted blocks
      DPH_HEAP_BLOCK : VirtAddr VirtSize
    Busy allocations
      DPH_HEAP_BLOCK : UserAddr  UserSize - VirtAddr VirtSize
    _HEAP @ 4c0000
    _DPH_HEAP_ROOT @ af41000
    Freed and decommitted blocks
      DPH_HEAP_BLOCK : VirtAddr VirtSize
    Busy allocations
      DPH_HEAP_BLOCK : UserAddr  UserSize - VirtAddr VirtSize
    _HEAP @ b210000
        0cf61680 0045 0045  [00]   0cf616a8    001f0 - (busy)
    _DPH_HEAP_ROOT @ d871000
    Freed and decommitted blocks
      DPH_HEAP_BLOCK : VirtAddr VirtSize
    Busy allocations
      DPH_HEAP_BLOCK : UserAddr  UserSize - VirtAddr VirtSize
    _HEAP @ d030000
    _DPH_HEAP_ROOT @ 11631000
    Freed and decommitted blocks
      DPH_HEAP_BLOCK : VirtAddr VirtSize
    Busy allocations
      DPH_HEAP_BLOCK : UserAddr  UserSize - VirtAddr VirtSize
    _HEAP @ 11b30000
        11b312e8 0045 0045  [00]   11b31310    001f0 - (busy)
        11b315a8 0045 0045  [00]   11b315d0    001f0 - (busy)
        11b356f8 0045 0045  [00]   11b35720    001f0 - (busy)
        11b35920 0045 0045  [00]   11b35948    001f0 - (busy)
        11b36f30 0045 0045  [00]   11b36f58    001f0 - (busy)
        11b37b58 0045 0045  [00]   11b37b80    001f0 - (busy)
        11b37e18 0045 0045  [00]   11b37e40    001f0 - (busy)
        11b3e4f0 0045 0045  [00]   11b3e518    001f0 - (busy)
        11b3f570 0045 0045  [00]   11b3f598    001f0 - (busy)
        11b3f830 0045 0045  [00]   11b3f858    001f0 - (busy)
        11b3faf0 0045 0045  [00]   11b3fb18    001f0 - (busy)
        11b3fdb0 0046 0045  [00]   11b3fdd8    001f0 - (busy)
        12890578 0045 0046  [00]   128905a0    001f0 - (busy)
        ......  

可以看到有很多堆都有使用到1f0大小的內存塊,但是只有最後一個堆 _DPH_HEAP_ROOT @ 11631000

是記錄最多的,滿屏都是,這裏只能截斷,選取一部分看看  

5、查看調用堆棧,使用命令:!heap -p -a [address]

80.dmp

0:051> !heap -p -a 11b3fdd8
    address 11b3fdd8 found in
    _HEAP @ 11b30000
      HEAP_ENTRY Size Prev Flags    UserPtr UserSize - state
        11b3fdb0 0046 0000  [00]   11b3fdd8    001f0 - (busy)
        Trace: 083a
        7405a6a7 verifier!AVrfpDphNormalHeapAllocate+0x000000d7
        74058f6e verifier!AVrfDebugPageHeapAllocate+0x0000030e
        77d10fe6 ntdll!RtlDebugAllocateHeap+0x00000030
        77ccab8e ntdll!RtlpAllocateHeap+0x000000c4
        77c73461 ntdll!RtlAllocateHeap+0x0000023a
        664668e5 msvcr90!_calloc_impl+0x00000125
        66463c5a msvcr90!calloc+0x0000001a

 
0:051> !heap -p -a 11b3fdd8
    address 11b3fdd8 found in
    _HEAP @ 11b30000
      HEAP_ENTRY Size Prev Flags    UserPtr UserSize - state
        11b3fdb0 0046 0000  [00]   11b3fdd8    001f0 - (busy)
        Trace: 083a
        7405a6a7 verifier!AVrfpDphNormalHeapAllocate+0x000000d7
        74058f6e verifier!AVrfDebugPageHeapAllocate+0x0000030e
        77d10fe6 ntdll!RtlDebugAllocateHeap+0x00000030
        77ccab8e ntdll!RtlpAllocateHeap+0x000000c4
        77c73461 ntdll!RtlAllocateHeap+0x0000023a
        664668e5 msvcr90!_calloc_impl+0x00000125
        66463c5a msvcr90!calloc+0x0000001a

 
0:051> !heap -p -a 11b3fb18
    address 11b3fb18 found in
    _HEAP @ 11b30000
      HEAP_ENTRY Size Prev Flags    UserPtr UserSize - state
        11b3faf0 0045 0000  [00]   11b3fb18    001f0 - (busy)
        Trace: 083a
        7405a6a7 verifier!AVrfpDphNormalHeapAllocate+0x000000d7
        74058f6e verifier!AVrfDebugPageHeapAllocate+0x0000030e
        77d10fe6 ntdll!RtlDebugAllocateHeap+0x00000030
        77ccab8e ntdll!RtlpAllocateHeap+0x000000c4
        77c73461 ntdll!RtlAllocateHeap+0x0000023a
        664668e5 msvcr90!_calloc_impl+0x00000125
        66463c5a msvcr90!calloc+0x0000001a  

  隨意挑選幾個查看調用堆棧,似乎沒有有用的特徵信息,verifier、ntdll、msvcr90這些都是操作系統內核級別的函數;

並不能暴露出使用1f0大小的數據塊大概位置,這就有點難辦了,難道此路不通?如果不找到有效堆棧信息,想定位

內心泄漏點,靠單步調試會相當麻煩。。。

  不急,先看看,這些地方內存塊內容是什麼,說不定能找到一些有效特徵信息;

使用命令:db [UserPtr]

80.dmp

0:051> db 11b3fb18
11b3fb18  00 00 04 00 00 00 00 00-00 00 00 00 00 00 00 00  ................
11b3fb28  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00  ................
11b3fb38  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00  ................
11b3fb48  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00  ................
11b3fb58  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00  ................
11b3fb68  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00  ................
11b3fb78  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00  ................
11b3fb88  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00  ................
0:051> db 11b3fdd8
11b3fdd8  00 00 04 00 00 00 00 00-00 00 00 00 00 00 00 00  ................
11b3fde8  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00  ................
11b3fdf8  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00  ................
11b3fe08  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00  ................
11b3fe18  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00  ................
11b3fe28  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00  ................
11b3fe38  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00  ................
11b3fe48  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00  ................
0:051> db 11b3fdd8
11b3fdd8  00 00 04 00 00 00 00 00-00 00 00 00 00 00 00 00  ................
11b3fde8  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00  ................
11b3fdf8  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00  ................
11b3fe08  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00  ................
11b3fe18  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00  ................
11b3fe28  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00  ................
11b3fe38  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00  ................
11b3fe48  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00  ................  

結果是令人失望的;

显示這些基本都是空白內存,裡邊已經沒有任何有效信息,,

陷入死衚衕里了,難道到此為止?

還不死心,我們再看看這些地址有沒有引用跟,如果有引用跟,也可以打印堆棧信息

使用命令:!gcroot [UserPtr]

80.dmp

0:051> !gcroot 11b3fb18
Found 0 unique roots (run '!GCRoot -all' to see all roots).
0:051> !gcroot 11b3fdd8
Found 0 unique roots (run '!GCRoot -all' to see all roots).
0:051> !gcroot 11b3fdd8
Found 0 unique roots (run '!GCRoot -all' to see all roots).

 願望是美好的,這個大小位1f0的數據塊被申請了0x102d9次,使用!gcroot命令查看得到貌似都是無引用的野數據

我們再來看看,這個 _DPH_HEAP_ROOT @ 11631000堆的創建堆棧

80.dmp

0:051> dt ntdll!_DPH_HEAP_ROOT CreateStackTrace 11631000
   +0x0b8 CreateStackTrace : 0x04d54f8c _RTL_TRACE_BLOCK
0:051> dds 0x04d54f8c 
04d54f8c  04d1b714
04d54f90  0000f801
04d54f94  000f0000
04d54f98  74058969 verifier!AVrfDebugPageHeapCreate+0x439
04d54f9c  77cbcea2 ntdll!RtlCreateHeap+0x41
04d54fa0  757356bc KERNELBASE!HeapCreate+0x50
04d54fa4  66463a4a msvcr90!_heap_init+0x1b
04d54fa8  66422bb4 msvcr90!__p__tzname+0x2a
04d54fac  66422d5e msvcr90!_CRTDLL_INIT+0x1e
04d54fb0  77c79264 ntdll!LdrpCallInitRoutine+0x14
04d54fb4  77c7fe97 ntdll!LdrpRunInitializeRoutines+0x26f
04d54fb8  77c7ea4e ntdll!LdrpLoadDll+0x472
04d54fbc  77cbd3df ntdll!LdrLoadDll+0xc7
04d54fc0  75732e6a KERNELBASE!LoadLibraryExW+0x233
04d54fc4  7562483c kernel32!LoadLibraryW+0x11
04d54fc8  6d3d18de*** WARNING: Unable to verify checksum for Win32Project1.dll
*** ERROR: Symbol file could not be found.  Defaulted to export symbols for Win32Project1.dll - 
 Win32Project1+0x18de
04d54fcc  6d3d28fc Win32Project1!BACNet::Init+0x5c
04d54fd0  6d3d5925 Win32Project1!Init+0x25
04d54fd4  66639972*** WARNING: Unable to verify checksum for SMDB.dll
*** ERROR: Symbol file could not be found.  Defaulted to export symbols for SMDB.dll - 
 SMDB!LogPop+0x12
04d54fd8  66639452 SMDB!CreateSharedMemory+0x12
04d54fdc  6d8e47bd clrjit!Compiler::impImportBlockCode+0x2aac [f:\dd\ndp\clr\src\jit32\importer.cpp @ 10258]
04d54fe0  6d8c2e6b clrjit!Compiler::impImportBlock+0x5f [f:\dd\ndp\clr\src\jit32\importer.cpp @ 13246]
04d54fe4  6d8c306a clrjit!Compiler::impImport+0x235 [f:\dd\ndp\clr\src\jit32\importer.cpp @ 14195]
04d54fe8  6d8c364f clrjit!Compiler::compCompile+0x62 [f:\dd\ndp\clr\src\jit32\compiler.cpp @ 2491]
04d54fec  6d8c4276 clrjit!Compiler::compCompileHelper+0x32f [f:\dd\ndp\clr\src\jit32\compiler.cpp @ 3615]
04d54ff0  6d8c43fc clrjit!Compiler::compCompile+0x2ab [f:\dd\ndp\clr\src\jit32\compiler.cpp @ 3086]
04d54ff4  6d8c45c8 clrjit!jitNativeCode+0x1f6 [f:\dd\ndp\clr\src\jit32\compiler.cpp @ 4057]
04d54ff8  6d8c377d clrjit!CILJit::compileMethod+0x7d [f:\dd\ndp\clr\src\jit32\ee_il_dll.cpp @ 180]
04d54ffc  633b39b3 clr!invokeCompileMethodHelper+0x10b
04d55000  633b3a8b clr!invokeCompileMethod+0x3d
04d55004  633b3ae8 clr!CallCompileMethodWithSEHWrapper+0x39
04d55008  633b3d97 clr!UnsafeJitFunction+0x431

動態庫Win32Project1.dll是對MSTP_DLL動態庫的再次封裝可以確定不存在內存泄漏問題;

南投搬家公司費用,距離,噸數怎麼算?達人教你簡易估價知識!

搬家費用:依消費者運送距離、搬運樓層、有無電梯、步行距離、特殊地形、超重物品等計價因素後,評估每車次單

看到這個堆是在於硬件設備通信的時候,初始化時CLR創建的線程;

不過知道這個好像也沒有什麼用,因為我們本來就知道是BACnet協議通信的動態庫有問題;

只能說明是初始化之後產生的內存泄漏;

 

但是為什麼這些無跟指針沒有被垃圾回收? 

但是仔細一想,好像也是正常,因為這些是可以明確的在C語言編寫的動態庫里申請的內存,屬於不受託管的內存;

C#垃圾回收也只能回收託管內存,所以這部分數據不主動釋放,那就會永遠在那裡;

但是現在,好像陷入死衚衕了,找不到思路,既然如此就先放放,先看看其他兩個數據塊的調用情況;

6、!heap -flt s 18

80.dmp

> !heap -flt s 18
...
        16f45098 000a 000a  [00]   16f450c0    00018 - (busy)
        16f45358 000a 000a  [00]   16f45380    00018 - (busy)
        16f45618 000a 000a  [00]   16f45640    00018 - (busy)
        16f458d8 000a 000a  [00]   16f45900    00018 - (busy)
        16f45b98 000a 000a  [00]   16f45bc0    00018 - (busy)
        16f46080 000a 000a  [00]   16f460a8    00018 - (busy)
        16f46118 000a 000a  [00]   16f46140    00018 - (busy)
        16f461b0 000a 000a  [00]   16f461d8    00018 - (busy)
        16f46248 000a 000a  [00]   16f46270    00018 - (busy)
        16f462e0 000a 000a  [00]   16f46308    00018 - (busy)
        16f46378 000a 000a  [00]   16f463a0    00018 - (busy)
        16f46410 000a 000a  [00]   16f46438    00018 - (busy)
        16f464a8 000b 000a  [00]   16f464d0    00018 - (busy)
        16f46548 000a 000b  [00]   16f46570    00018 - (busy)
        16f46808 000a 000a  [00]   16f46830    00018 - (busy)
        16f46ac8 000a 000a  [00]   16f46af0    00018 - (busy)
        16f46d88 000a 000a  [00]   16f46db0    00018 - (busy)
        16f47048 000a 000a  [00]   16f47070    00018 - (busy)
        16f47308 000a 000a  [00]   16f47330    00018 - (busy)
...

7、隨意挑幾個看看,命令:!heap -p -a [UserPtr]  

80.dmp

0:051> !heap -p -a 
invalid address  passed to `-p -a'0:051> !heap -p -a 16f460a8    
    address 16f460a8 found in
    _HEAP @ 11b30000
      HEAP_ENTRY Size Prev Flags    UserPtr UserSize - state
        16f46080 000a 0000  [00]   16f460a8    00018 - (busy)
        Trace: 074b
        7405a6a7 verifier!AVrfpDphNormalHeapAllocate+0x000000d7
        74058f6e verifier!AVrfDebugPageHeapAllocate+0x0000030e
        77d10fe6 ntdll!RtlDebugAllocateHeap+0x00000030
        77ccab8e ntdll!RtlpAllocateHeap+0x000000c4
        77c73461 ntdll!RtlAllocateHeap+0x0000023a
        664668e5 msvcr90!_calloc_impl+0x00000125
        66463c5a msvcr90!calloc+0x0000001a
*** ERROR: Symbol file could not be found.  Defaulted to export symbols for MSTP_DLL.dll - 
        669baea1 MSTP_DLL!MSTP_Get_RPM_ACK_Data+0x00000091

 
0:051> !heap -p -a 16f46570    
    address 16f46570 found in
    _HEAP @ 11b30000
      HEAP_ENTRY Size Prev Flags    UserPtr UserSize - state
        16f46548 000a 0000  [00]   16f46570    00018 - (busy)
        7405a6a7 verifier!AVrfpDphNormalHeapAllocate+0x000000d7
        74058f6e verifier!AVrfDebugPageHeapAllocate+0x0000030e
        77d10fe6 ntdll!RtlDebugAllocateHeap+0x00000030
        77ccab8e ntdll!RtlpAllocateHeap+0x000000c4
        77c73461 ntdll!RtlAllocateHeap+0x0000023a
        664668e5 msvcr90!_calloc_impl+0x00000125
        66463c5a msvcr90!calloc+0x0000001a
        669baea1 MSTP_DLL!MSTP_Get_RPM_ACK_Data+0x00000091

 
0:051> !heap -p -a 16f46308
    address 16f46308 found in
    _HEAP @ 11b30000
      HEAP_ENTRY Size Prev Flags    UserPtr UserSize - state
        16f462e0 000a 0000  [00]   16f46308    00018 - (busy)
        Trace: 074b
        7405a6a7 verifier!AVrfpDphNormalHeapAllocate+0x000000d7
        74058f6e verifier!AVrfDebugPageHeapAllocate+0x0000030e
        77d10fe6 ntdll!RtlDebugAllocateHeap+0x00000030
        77ccab8e ntdll!RtlpAllocateHeap+0x000000c4
        77c73461 ntdll!RtlAllocateHeap+0x0000023a
        664668e5 msvcr90!_calloc_impl+0x00000125
        66463c5a msvcr90!calloc+0x0000001a
        669baea1 MSTP_DLL!MSTP_Get_RPM_ACK_Data+0x00000091  

這次很順利,這個內存使用的地方實在MSTP_DLL的 MSTP_Get_RPM_ACK_Data裡邊;這個就是我們要找的最終的內存泄漏點信息;

同樣操作堆10大小的數據塊操作一遍

80.dmp

> !heap -flt s 10
...
        15359fa0 0009 0009  [00]   15359fc8    00010 - (busy)
        1535a2a0 0009 0009  [00]   1535a2c8    00010 - (busy)
        1535a560 0009 0009  [00]   1535a588    00010 - (busy)
        1535aee8 0009 0009  [00]   1535af10    00010 - (busy)
        1535af80 0009 0009  [00]   1535afa8    00010 - (busy)
        1535b018 0009 0009  [00]   1535b040    00010 - (busy)
        1535b360 0009 0009  [00]   1535b388    00010 - (busy)
        1535b620 0009 0009  [00]   1535b648    00010 - (busy)
        1535c420 0009 0009  [00]   1535c448    00010 - (busy)
        1535d220 0009 0009  [00]   1535d248    00010 - (busy)
        1535d4e0 0009 0009  [00]   1535d508    00010 - (busy)
        1535d7a0 0009 0009  [00]   1535d7c8    00010 - (busy)
        1535da60 0009 0009  [00]   1535da88    00010 - (busy)
        1535dd20 0009 0009  [00]   1535dd48    00010 - (busy)
        1535dfe0 0009 0009  [00]   1535e008    00010 - (busy)
        1535e2a0 0009 0009  [00]   1535e2c8    00010 - (busy)
        1535e560 0009 0009  [00]   1535e588    00010 - (busy)
        1535e820 0009 0009  [00]   1535e848    00010 - (busy)
        1535eae0 0009 0009  [00]   1535eb08    00010 - (busy)
        1535eda0 0009 0009  [00]   1535edc8    00010 - (busy)
        1535f060 0009 0009  [00]   1535f088    00010 - (busy)
        1535f320 0009 0009  [00]   1535f348    00010 - (busy)
        1535f5e0 0009 0009  [00]   1535f608    00010 - (busy)
...
80.dmp

0:051> !heap -p -a 1535eb08    
    address 1535eb08 found in
    _HEAP @ 11b30000
      HEAP_ENTRY Size Prev Flags    UserPtr UserSize - state
        1535eae0 0009 0000  [00]   1535eb08    00010 - (busy)
        Trace: 0817
        7405a6a7 verifier!AVrfpDphNormalHeapAllocate+0x000000d7
        74058f6e verifier!AVrfDebugPageHeapAllocate+0x0000030e
        77d10fe6 ntdll!RtlDebugAllocateHeap+0x00000030
        77ccab8e ntdll!RtlpAllocateHeap+0x000000c4
        77c73461 ntdll!RtlAllocateHeap+0x0000023a
        664668e5 msvcr90!_calloc_impl+0x00000125
        66463c5a msvcr90!calloc+0x0000001a
        669bb07b MSTP_DLL!MSTP_Get_RP_ACK_Data+0x0000003b

 
0:051> !heap -p -a 1535f088    
    address 1535f088 found in
    _HEAP @ 11b30000
      HEAP_ENTRY Size Prev Flags    UserPtr UserSize - state
        1535f060 0009 0000  [00]   1535f088    00010 - (busy)
        Trace: 0817
        7405a6a7 verifier!AVrfpDphNormalHeapAllocate+0x000000d7
        74058f6e verifier!AVrfDebugPageHeapAllocate+0x0000030e
        77d10fe6 ntdll!RtlDebugAllocateHeap+0x00000030
        77ccab8e ntdll!RtlpAllocateHeap+0x000000c4
        77c73461 ntdll!RtlAllocateHeap+0x0000023a
        664668e5 msvcr90!_calloc_impl+0x00000125
        66463c5a msvcr90!calloc+0x0000001a
        669bb07b MSTP_DLL!MSTP_Get_RP_ACK_Data+0x0000003b

 
0:051> !heap -p -a 1535f348    
    address 1535f348 found in
    _HEAP @ 11b30000
      HEAP_ENTRY Size Prev Flags    UserPtr UserSize - state
        1535f320 0009 0000  [00]   1535f348    00010 - (busy)
        Trace: 0817
        7405a6a7 verifier!AVrfpDphNormalHeapAllocate+0x000000d7
        74058f6e verifier!AVrfDebugPageHeapAllocate+0x0000030e
        77d10fe6 ntdll!RtlDebugAllocateHeap+0x00000030
        77ccab8e ntdll!RtlpAllocateHeap+0x000000c4
        77c73461 ntdll!RtlAllocateHeap+0x0000023a
        664668e5 msvcr90!_calloc_impl+0x00000125
        66463c5a msvcr90!calloc+0x0000001a
        669bb07b MSTP_DLL!MSTP_Get_RP_ACK_Data+0x0000003b  

這次也順利拿到另一個內存泄漏的位置信息在MSTP_DLL的 MSTP_Get_RP_ACK_Data裡邊;  

MSTP_Get_RP_ACK_Data

MSTP_Get_RPM_ACK_Data

這兩個方法其實是讀取模塊點數值或者收集模塊信息的時候返回的一個數據指針;

現在很明顯這兩個方法返回的指針可能是有問題的,裡邊非常大的可能存在內存泄漏;

7、驗證

跟同事找到原來的MSTP_DLL的源碼,找到以上兩個方法體

 

 可以看到當初那位同事設計這個方法的時候,很明顯有2個錯誤;

1)返回的指針只見聲明內存空間,不見釋放;

2)返回數據的指針不應該在方法體中的返回值中傳出來,應該寫在方法參數中,外部聲明,傳進去賦值,然後外部使用,再外部釋放

3)兩個方法體都一樣的問題

 

五、整理

1)我們知道有三處內存泄漏,分別大小是1f0、18、10 

2)三者佔據99%的新增不釋放的內存消耗

3)我們已經找到其中兩個泄漏位置,還剩下一個

4)1f0是重中之重,佔據內存消耗92%,不解決這個BUG,問題基本就相當於沒解決

5)無法找到1f0的調用堆棧信息,無明顯特徵信息,無引用跟;

5)emmmmm? (第二聲)

 

好像被我們錯過了一個信息, 

是否還記得最開始那一段?

80.dmp

0:051> !heap -stat -h 11b30000 
 heap @ 11b30000
group-by: TOTSIZE max-display: 20
    size     #blocks     total     ( %) (percent of total busy bytes)
    1f0 102d9 - 1f58470  (92.48)
    18 102b0 - 184080  (4.47)
    10 102ae - 102ae0  (2.98)  

 這幾個數據很接近,都是申請次數大小,也就是說著三個數據塊被申請的次數差不多。。

鑒於此,我們再去看看33M內存的時候這幾個次數的值是多少

33.dmp

0:047> !heap -s
LFH Key                   : 0x343fce0b
Termination on corruption : ENABLED
  Heap     Flags   Reserv  Commit  Virt   Free  List   UCR  Virt  Lock  Fast 
                    (k)     (k)    (k)     (k) length      blocks cont. heap 
-----------------------------------------------------------------------------
00780000 00000002    8192   4636   8192    209  2484     4    0      e   LFH
002e0000 00001002     256      4    256      2     1     1    0      0      
00280000 00001002    1088     72   1088      5     2     2    0      0      
00c70000 00041002     256      4    256      2     1     1    0      0      
002d0000 00001002    1088    132   1088      8    23     2    0      0      
00450000 00001002     256      4    256      0     1     1    0      0      
07230000 00041002     256      4    256      2     1     1    0      0      
00c10000 00001002     256    216    256      3    39     1    0      0   LFH
09b50000 00001002     256     80    256     39    28     1    0      0      
09d00000 00001002      64      4     64      2     1     1    0      0      
09ef0000 00001002    1088     72   1088      6     2     2    0      0      
004c0000 00001002    1088    192   1088     15   140     2    0      0      
09760000 00041002     256     28    256      4     4     1    0      0      
09ed0000 00001002      64     12     64      1     1     1    0      0      
0b210000 00001002    3136   1456   3136     52    84     3    0      0   LFH
0a700000 00001002     256    212    256      2     1     1    0      0      
0e1e0000 00011002     256      4    256      0     1     1    0      0      
0d030000 00001002     256     16    256      3     1     1    0      0      
11b30000 00001002    1088    388   1088      0     1     2    0      0      
-----------------------------------------------------------------------------
0:047> !heap -stat -h 11b30000 
 heap @ 11b30000
group-by: TOTSIZE max-display: 20
    size     #blocks     total     ( %) (percent of total busy bytes)
    1f0 1f2 - 3c4e0  (86.13)
    18 1c9 - 2ad8  (3.82)
    1000 2 - 2000  (2.86)
    10 1c7 - 1c70  (2.54)
    214 c - 18f0  (2.23)
    800 2 - 1000  (1.43)
    220 1 - 220  (0.19)
    1d7 1 - 1d7  (0.16)
    80 3 - 180  (0.13)
    a4 1 - a4  (0.06)
    24 4 - 90  (0.05)
    14 4 - 50  (0.03)
    4a 1 - 4a  (0.03)
    25 2 - 4a  (0.03)
    48 1 - 48  (0.03)
    46 1 - 46  (0.02)
    41 1 - 41  (0.02)
    3e 1 - 3e  (0.02)
    3c 1 - 3c  (0.02)
    37 1 - 37  (0.02)  

 分別是1f2、1c9、1c7;

1f0:102d9 – 1f2 = 65767

18:102b0 – 1c9 = 65767

10:102ae – 1c7 = 65767

居然申請的次數一模一樣!

穩了!這個1f0可以斷定與其他兩個緊密相關;首先懷疑的就是

MSTP_Get_RP_ACK_Data

MSTP_Get_RPM_ACK_Data

1)這兩個方法體中使用到的所有子方法體有沒有申請空間的語句;

2)申請的空間大小是不是就是1f0;

 

依據上面的推測,再次閱讀那2個方法體;

 

 

 

 

經過分析BACNET_APPLICATION_DATA_VALUE結構體大小剛好就是1f0 

好了,搞定

 

如果對你有幫助,請點贊、評論;  

 

 

本站聲明:網站內容來源於博客園,如有侵權,請聯繫我們,我們將及時處理

※想知道購買電動車哪裡補助最多?台中電動車補助資訊懶人包彙整

節能減碳愛地球是景泰電動車的理念,是創立景泰電動車行的初衷,滿意態度更是服務客戶的最高品質,我們的成長來自於你的推薦。

當老傳統成為新時尚_包裝設計

※自行創業缺乏曝光? 網頁設計幫您第一時間規劃公司的形象門面

網動廣告出品的網頁設計,採用精簡與質感的CSS語法,提升企業的專業形象與簡約舒適的瀏覽體驗,讓瀏覽者第一眼就愛上她。

北宋年間,家家戶戶貼年畫已是一種風尚,也由此,木版年畫在歷史的長河中始終留存着時尚的記憶。當代,手工木版年畫被以非物質文化遺產的形態加以保護,同時,傳承和創新也成為木版年畫傳承人肩負的兩個重任。有這樣一群人,他們視木版年畫為中國民間藝術寶庫中的一顆璀璨明珠,一直走在挖掘、創新、變革的路上。又是新年將至,今年的木版年畫可以為人們帶來哪些新意?這些心心念念的新時代“年畫家”都在忙些什麼?

 設計師王全傑 :年畫新可能

楊柳青年畫周曆簽

新年將至,北京順義區的一所小院里,設計師王全傑剛剛忙完楊柳青年畫周曆簽——2020年“世象新語”周曆的預售,5000套周曆幾乎都已被單位預定出去。初次嘗試與楊柳青木版年畫合作,並能夠得到市場的認可,王全傑不斷回味。

2019年7月,王全傑在清華美院校友召喚下加入了年畫日新創作營,本着對於年畫的關注與喜愛,帶着輕鬆自在的心情,王全傑輕裝上陣了。

剛入營,兩件事讓王全傑心情無法平靜。首先創作營的主辦方將組織結構安排得相當縝密,全國11個木版年畫產地會自發組成一個個創作小組(注:最終實際組成了9個創作小組),年畫傳承人+插畫師+設計師+導師(清華美院和中央美院的教授和副教授)作為一個小組組合,王全傑成了楊柳青組組長。主辦方的安排是,經過一個階段的年畫知識學習,再經歷1個月的創作,然後做出創新作品和產品進行展覽,最後對社會公開創作成果。

在學習了年畫知識、深入年畫創作地區了解了年畫歷史后,王全傑原先以為會憑藉著豐富設計經驗輕鬆完成這份任務,但卻被厚重的傳統文化攪動了內心。“真是無處下手,年畫傳承人深陷其中很難改變,我們作為外來者,出於對老祖宗留下的這些寶物的敬畏,似乎也不敢隨便說、隨便做了。”王全傑說。

一個月的迷茫期過後,王全傑總結出年畫轉化的兩個難點:第一,作為傳承人,雖然擁有老祖宗留下的年畫模板、掌握着傳統的刻畫技藝,但是缺少產品轉化能力;第二,作為外來者——設計人員,雖有很強的設計能力,但究竟轉化成什麼是最大的難點。

王全傑在腦海中翻轉:做什麼樣的產品,怎麼能體現楊柳青風格,怎麼能有新意,怎麼能增加使用的體驗感、情景感,還得製造點小驚喜。

經歷了無數個靈感的沉浮,一次次被自己或小組成員否定,王全傑關於周曆的創意橫空出世。機緣巧合的是,這樣一個創意很快得到北京一家企業的認可,並有意出資支持該創意。王全傑信心倍增。

“創意有了,落實到產品時,第一版就被出資方否定了。”王全傑再次回到原點。利用楊柳青年畫元素設計的第一版周曆美觀,但缺少生活黏性、很難達到與使用者的互動。

年畫日新創作營楊柳青組設計師們再次前往楊柳青,找到楊柳青木版年畫國家級非遺傳承人霍慶順,聽霍慶順細數年畫民俗,並對其所擁有的與老百姓生活相關的藏品做了仔細研究。霍慶順老人一句話點亮了王全傑內心。

“你看踩高蹺,大多數人都只看到表面上的熱鬧,但很少有人知道這其中最主要的用意是祭拜藥王、祈福安康。進入年關,每一天都有特殊的意義……”這句話就像一把開啟創意之門的鑰匙,為迷途中的王全傑和設計師們打開了門:“周曆的基礎上加入日曆,在臘月的最後一周開始日曆倒計時。”

創意有了,楊柳青創作小組成員連續两天兩夜的頭腦風暴,將創意再次細化落實在產品上:在周曆基礎之上特別策劃的“過年日曆”,篇篇辣詞趣語,以當下語境直入現代生活,內置如意轉盤每天跟你靈犀互動。這些新意讓2020年“世象新語”周曆產品順利出版落地。

“我們設計師想給楊柳青木版年畫傳承者做出一個示範,讓他們看到傳統年畫與當代流行文化融合的更多可能性。為大眾提供一個日常使用載體,讓人們了解楊柳青木版年畫的豐富性和多樣性。”王全傑說。

故事記錄者恭弘=叶 恭弘萌 :回歸當代時尚

穀雨平台上的金華木板年畫

對傳統手工藝有着濃厚興趣的恭弘=叶 恭弘萌,探索傳統與當代文化融合的路徑用了5年時間,為了讓更多人了解傳統手工藝他組建了一個傳統手工藝視頻傳播平台——穀雨,這個平台免費為手工藝人們拍攝宣傳片。

※產品缺大量曝光嗎?你需要的是一流包裝設計!

窩窩觸角包含自媒體、自有平台及其他國家營銷業務等,多角化經營並具有國際觀的永續理念。

“中國上下五千年,從來不缺故事,但卻沒有人會講這些中國故事,有太多我們為之自豪的傳統手工藝散落於四野。如果不能讓人看見,又何談傳承呢?”恭弘=叶 恭弘萌說。

恭弘=叶 恭弘萌畢業於中國美術學院視覺傳達系。他做過設計師,參与設計的項目有中國國際西湖博覽會、第21屆金雞百花電影節標誌等;在電視台工作了十幾年。為了追逐心中的夢想,放棄穩定的工作,恭弘=叶 恭弘萌創業成立了自己的文化公司。服務了幾百個商業客戶后,2015年他突然感覺工作生涯中所有的積累都應該為了達成他內心中一個夢想——用各種方式構築傳統手工藝從再現到再生的體系,讓傳統手工藝能夠回歸當代生活,成為新的時尚,至此,穀雨——傳統手工藝內容轉化平台宣告問世。

2019年,穀雨的木版年畫產品轉化項目“傳統節中國禮”主旨就是讓傳統節更中國、更時尚。“穀雨打造的內容轉化平台是要做傳統手工藝時尚品牌孵化池。”恭弘=叶 恭弘萌說。

穀雨的平台上金華木版年畫製作者黃菁菁就是一位不甘於讓傳統成為傳說的女性。

金華木版年畫,孕育於漢唐,形成於宋元,鼎盛於明清。浙江在五代吳越時期就是木版畫比較發達的地區,至宋代,金華已經是全國木版年畫的中心之一。

黃菁菁出身木版年畫世家,長大后並沒有從事年畫製作,而成為一名商人,在杭州開了一家文化公司,經營得紅紅火火。雖然她在商界收穫了成功,但內心深處無數次回憶起兒時父輩們製作木版年畫的場景、父親抱着她給她講《五子登科》年畫故事的場景……她對記憶中的年畫魂牽夢繞。

那段日子里,似乎總有一個聲音,在向她不停地召喚。她決定:回家,做木版年畫。

回鄉之時正是金華木版年畫最蕭條的時期,曾經有專家對金華木版年畫的萎縮倍感痛心,黃菁菁的回歸讓金華木板年畫再現生機。

說來容易,做起來才知道苦辣辛酸。首先需搜集老版與老畫,“尋回金華年畫的根”。剛開始的那幾年,黃菁菁一直奔波在路上,從南疆到北國。後來甚至還走出了國門,無論是老版還是老畫,黃菁菁的用語都是“請回來”。 就這樣,黃菁菁一點一滴地打造起金華木版年畫博物館和年畫製作體驗館。如今,她的年畫博物館中已收藏了60餘套老版、2000多幅老年畫,其中六成都是孤版。而她的年畫製作體驗基地成了中國第六個年畫製作基地,也是浙江唯一的年畫基地。

傳承人邰立平:讓年畫“火”起來

邰立平作品《方弼》

年關將至,鳳翔木版年畫代表性傳承人邰立平忙得不亦樂乎。

鳳翔年畫“始於唐宋,盛於明清”,早在600多年前的明初洪武年間,世代耕居於此的邰氏家族就已經開始從事年畫的生產了。邰立平是鳳翔木版年畫第20代傳人。他創辦了鳳怡年畫社,致力於對流散民間的古樣進行挖掘、整理、研究和複製,使這一古老民間傳統藝術得以傳承。

邰立平這一代傳承人經歷了年畫從興到衰整個過程。“隨着時代的轉變和人們生活方式的變化,之前人們張貼年畫的習俗正在慢慢地改變。雖然春節時張貼年畫的習俗還未消失,但也從張貼傳統手工印製的年畫轉變為張貼機器印刷品,這就對傳統的非遺手工年畫形成了很大衝擊。傳統的木版年畫就是反映人民生活的一部百科全書。近年來,隨着國家對傳統文化的重視,社會上對這項古老的傳承技藝越來越推崇和認可,出現了很多國潮風格的文創作品,這都是傳統非遺技藝的文化土壤。”邰立平說。

邰立平認為,當下是鳳翔木版年畫發展的最佳時機。“把木版年畫繼承下去,讓民間美術發揚光大”這是邰立平最大的心愿。為了能夠儘早實現自己的心愿,他分步驟推動自己的計劃。

首先需要找回失散的木刻版。從1978年改革開放到上世紀90年代的年畫,邰立平共復刻了400多套版,大概2000塊木版,把散落民間的老畫樣基本全部恢復。他還分別在1994年出版了手工裝訂的《鳳翔木版年畫選》第一卷、1997年出版了第二卷。目前第三卷的出版工作也在緊張進行中。

其次,在創作上,鳳翔年畫風格緊貼時代脈搏。1999年巴黎中國文化周,邰立平創作了活動吉祥物獅子滾繡球版畫,2008年奧運會時創作了福娃主題作品。鳳翔年畫的名氣越來越大。邰立平先後應邀在澳大利亞、德國、法國等多個國家以及國內各大美院和美術館參展,其作品也陸續被中國國家博物館和國內外200多家藝術學院與機構收藏。

再次,從經營的角度,邰立平也不斷進行着適應市場的改變。傳統年畫的尺寸和包裝都不適應現代都市人的需求,他們專門推出了適合張貼在城市單扇門上的小門神年畫,對年畫的包裝進行變革,更能使現代人喜歡和接受。

這些年邰立平一直在探索如何讓年畫走進千家萬戶,使老百姓能真正用起來。他參与非遺進校園活動;他和國內知名設計師合作,推出了雕刻時光日曆;和中國手藝網和雅昌合作,推出了鳳翔木版年畫年曆;和騰訊、京東合作,跨界進入手游領域,讓年輕人在玩遊戲時也能體驗國潮風。(鄭芋)

本站聲明:網站內容來http://www.societynews.cn/html/wh/fq/,如有侵權,請聯繫我們,我們將及時處理

南投搬家公司費用需注意的眉眉角角,別等搬了再說!

上新台中搬家公司提供您一套專業有效率且人性化的辦公室搬遷、公司行號搬家及工廠遷廠的搬家服務