捷豹XF榮獲金方向盤 “最佳轎車”獎

捷豹XF第二代捷豹XF於今年年初發布,提供多種動力系統供消費者選擇,其中包括兩款6缸發動機和多款全新Ingenium系列4缸柴油發動機。其中,163馬力2。0升柴油發動機的二氧化碳排放量僅為104克/公里。搭載380馬力3。0升6缸汽油發動機的車型最高速度可達155英里/小時。
本站聲明:網站內容來源於http://www.auto6s.com/,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

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

※如何讓商品強力曝光呢? 網頁設計公司幫您建置最吸引人的網站,提高曝光率!

※綠能、環保無空污,成為電動車最新代名詞,目前市場使用率逐漸普及化

※廣告預算用在刀口上,台北網頁設計公司幫您達到更多曝光效益

※教你寫出一流的銷售文案?

※別再煩惱如何寫文案,掌握八大原則!

這個30萬的車都才有的配置 這幾款15萬SUV竟然都有?

88萬提起漢騰這個名字大家還是比較陌生的,但是初見漢騰X7有着很熟悉的感覺,看起來很順眼,前臉設計十分大氣,分上中下三層的進氣格柵凸顯了車頭的層次感,側麵線條簡約而硬朗,黑色包圍套件和雙邊雙出的排氣管設計彰顯SUV硬派氣息。

其實一開始這種系統是應用在戰鬥機上面的显示系統,因為飛行員在飛行中需要經常交替觀察艙內儀錶和艙外的環境,要不斷改變眼睛焦距容易產出視覺中段,所以發明了這個通過光學部件投射到前方組合玻璃显示裝置上,更方便一邊飛行一邊觀察數據,現在隨着科技的發展,已經應用在許多高端轎車上。

今天小編就給大家說說汽車上的抬頭显示系統,它可以把一些重要的行車信息如車速、油耗等信息映射到一片玻璃上面,駕駛人員即使不用低頭也能對行車數據了如指掌,提高駕駛者的行車安全性。

而一些更高端的車型上還可以显示導航信息、道路狀況等信息,非常的方便實用,今天我們一起來看一下哪些國產車中都配備了抬頭显示系統的。

瑞虎7 2016款 1.5T 自動耀尊版

廠商指導價:15.39萬

瑞虎7是奇瑞旗下的旗艦車型,體現了奇瑞的最高造車水準,新車基於奇瑞TX概念車打造,外觀設計時尚精緻,凌厲的腰線、充滿力量感的造型、18寸的大輪轂,原創度很高,三叉戟式大燈造型別緻,看上去更加年輕動感。

和年輕時尚的外觀相互呼應,內飾設計也充滿個性化,黑橙雙色搭配的內飾挑起了視覺上的衝擊,整體很簡潔流暢,主要操作在中控屏上都能實現,液晶儀錶盤、前排座椅加熱/通風/按摩、轉向輔助燈、發動機啟停、併線輔助等配置簡直就是跨級別的享受。

瑞虎7的軸距2670mm,屬於中規中矩的尺寸類型,但實際體驗中乘坐感受同級別來說還是挺出色的,皮質包裹的座椅包裹性好,肩部支撐很到位,提供了1.5T+6擋手動/6擋雙離合的動力組合(加速能力較強),或者2.0L+CVT的動力組合(平順性、性價比方面有優勢),採用四連桿獨立后懸架,底盤質感好,有歐系車的風格。

點評:無論是外觀設計,還是內飾配置,瑞虎7都是極具性價比的一款車,優越的駕駛質感和良好的賣相,上市后就取得了不錯的銷量,看來很符合國人的用車需求。

漢騰X7 2016款 2.0T 自動御馬版

廠商指導價:14.88萬

提起漢騰這個名字大家還是比較陌生的,但是初見漢騰X7有着很熟悉的感覺,看起來很順眼,前臉設計十分大氣,分上中下三層的進氣格柵凸顯了車頭的層次感,側麵線條簡約而硬朗,黑色包圍套件和雙邊雙出的排氣管設計彰顯SUV硬派氣息。

內飾的設計是不是也很眼熟,像不像某德系豪華品牌,不過其用料和質感還是挺不錯的,門板上也採用了皮質材料和雙縫線的設計,很上檔次,而配置上HUD抬頭显示、360度全景影像、電動尾門、电子手剎和自動駐車等高端配置都齊全,性價比很高。

漢騰X7的長*寬*高為4671*1902*1697mm,軸距達到了2810mm,乘坐空間和儲物空間都是非常寬裕的,而後排座椅放倒後幾乎全平的地台擴展性很強,動力提供1.5T+5擋手動或者2.0T+6擋雙離合的組合,后多連桿帶穩定桿的獨立懸挂調校很有德系車的感覺,路感清晰又帶有韌性。

點評:漢騰X7上市后的競爭對手眾多,入哈弗H6、長安CS75等,豐富的配置和較為寬敞的空間是它的優勢,但品牌認知度還較低,至於質量如何,還有待時間的檢驗。

優6 SUV 2017款 1.8T 智尊型

廠商指導價:16.98萬

優6的外觀走的是那種時尚亮麗的設計風格,家族式的前臉擺脫了大7SUV一貫的圓潤的風格,變得更加犀利有神,進氣格柵大量使用條狀鍍鉻飾條,視覺效果不錯,相對低矮的車身加上流暢的車頂線條,看上去很有跨界車的感覺。

內飾採用了環抱式的設計,中控台和門板的連接完美融合,用料上雖然是不怎麼厚道,但是細節部分做得比較好,一些地方被用上了仿碳纖維的裝飾,非常動感,方向盤換擋、全景攝像頭、电子駐車、無鑰匙進入/啟動等配置一應俱全。

優6的長*寬*高為4625*1825*1620mm,軸距為2720mm,由於車身較為低矮,坐姿相對較高,頭部空間比較一般,而腿部空間還是不錯的,2017款全系標配1.8T+6擋手自一體變速器,發動機表現令人滿意,動力響應靈敏,換擋較為平順,整車隔音比較好,開起來很安靜。

點評:新款優6多方面都有明確改善,特別更換了變速箱,對平順性和燃油經濟性都有一定提升,而一向主打配置的納智捷在車載系統上仍有可優化的空間,在價格上應該多些優惠政策,才能在眾多品牌中佔有優勢。

注:部分車型圖片欠缺,會用其他車型圖片代替。本站聲明:網站內容來源於http://www.auto6s.com/,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

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

※如何讓商品強力曝光呢? 網頁設計公司幫您建置最吸引人的網站,提高曝光率!

※綠能、環保無空污,成為電動車最新代名詞,目前市場使用率逐漸普及化

※廣告預算用在刀口上,台北網頁設計公司幫您達到更多曝光效益

※教你寫出一流的銷售文案?

※別再煩惱如何寫文案,掌握八大原則!

哪些年,我們玩過的Git

作者:玩世不恭的Coder
公眾號:玩世不恭的Coder
時間:2020-06-05
說明:本文為原創文章,未經允許不可轉載,轉載前請聯繫作者

哪些年,我們玩過的Git

前言一、前期工作常用基本概念的理解Git環境的搭建用戶名和郵箱的配置二、Git的理論基礎工作區域工作流程版本庫的初始化文件的四種狀態Git的初步操作三、關於文件的各種操作文件修改之後版本的回退撤銷修改文件的刪除四、本地項目遠程提交到Github倉庫五、Git的分支管理分支的創建與合併單人分支合併時的衝突解決多人協作下的衝突解決六、標籤管理總結參考資料

前言

關於Git,相信每一位該領域的朋友都了解其的強大。Git是一種廣受歡迎的代碼管理工具,在實際開發中,我們可以通過Git和團隊更好管理我們的項目版本,也大大提高了團隊的開發效率。在實際使用Git的過程中,我們一般只需要掌握其中的十幾條命令就夠用了,Taoye之前對Git也只是停留在會用的狀態,而由於對Git內部的一些細節平時接觸比較少,所以還是會有一點盲區存在。所以,乘着考研結束的這段空閑時間,對之前學習過的Git做一個整理,一方面分享給各位讀者,另一方面也方便自己日後的複習。本文主要介紹了在實際開發過程中所常用的一些Git操作,由於博主技術水平有限,在內容上的表述難免會有疏忽和遺漏,也懇請各位Coder多多指教。

一、前期工作

常用基本概念的理解

  • 版本控制

所謂的版本控制是指對軟件開發過程中各種程序代碼、配置文件及說明文檔等文件變更的管理,是軟件配置管理的核心思想之一。簡單的講,就是方便我們對項目代碼的各種版本進行管理。

我們可以舉個例子來進行說明一下:相信每一位學生,無論是大學畢業或是研究生畢業,都避免不了完成一篇學術性的論文。我們都知道,學術性論文的撰寫都是一個長期的過程,在這個過程也會經歷不斷地反覆修改,這樣就會產生多個論文版本。相信每一位有過此經歷的同學都會感到痛苦,版本多了甚至都不知道每一個版本的論文內容都修改了啥。而我們的Git就能夠很好的管理各種版本的論文,在每一次提交的時候,都可以在comment中記錄我們對論文的修改內容,並且每一個版本的論文都可以進行回滾等操作,也就是隨意的切換各種版本。如此一來,豈不快哉???

此外,我們還可以使用廖大大提到的例子來解釋一下:在許多遊戲中,都會有一個存檔的操作,如果你對接下來的挑戰Boss沒有足夠的信心,就可以進行一次存檔,當我們的角色因為挑戰Boss而喪命,我們就可以讀取其中的存檔而從當前狀態繼續遊戲,而不需要從頭再來,假如遊戲有保存多個存檔的操作,我們還可以讀取不同的存檔來繼續遊戲。同樣地,在我們對文件進行修改到一定程度的時候,就可以保存一個“快照”,一旦我們對自己的操作的不滿意,就可以進行恢復或是回滾操作,這樣就可以“穿梭”到操作之前狀態繼續工作,而無需從頭再來。

  • 工作區(Working Directory)

可以理解成就是電腦本地磁盤的目錄,比如我們在本地創建了一個temp目錄,那這個目錄就叫做工作區。

  • 暫存區(Staging area)

一般存放在”git目錄”下的index文件(.git/index)中,所以我們把暫存區有時也叫作索引(index)。

  • 版本庫(Repository)

我們的工作區有個隱藏目錄.git,它就是Git的本地版本庫。

對於以上部分概念,有些讀者可能不是很了解,大家可以閱讀下面內容之後再回過頭來進行推敲,相信大家一定會有更加透徹的理解。

Git環境的搭建

對於Git的安裝,在前面我們講解Hexo搭建博客的時候有介紹過,這裏我們再簡單的回顧一下。

你可在git官網中根據自己的需要進行下載:https://git-scm.com/。打開之後你將看到如下內容,就無腦download for Windows

將其下載到指定的磁盤,然後Windows系統下傻瓜式安裝即可。安裝好后我們打開cmd終端(win+r -> 輸入cmd -> 回車),執行git --version,若出現git version 2.19.2.windows.1之類的版本輸出,那麼恭喜你已經成功安裝Git。

對於Linux操作系統下,我們可以直接通過命令的形式來進行安裝:

1# Linux下安裝Git
2sudo apt-get install git

用戶名和郵箱的配置

我們在安裝完成Git之後,首先第一步要做的就是配置Git的用戶名和郵箱,這個是提交項目的用戶的唯一標識。

1# 配置用戶名和郵箱,配置好之後會寫入C:\Users\M的.gitfig文件中
2git config --global user.name "username"
3git config --global user.email "email@qq.com"

global說明:global代表全局的意思,也就是說我們在之後提交的每一個項目採用的都是該用戶名和郵箱。假如我們需要在不同的項目中使用不同的用戶名和郵箱,我們則不需要添加–global參數。

我們將此信息配置好之後,就會寫入C:\Users\M中的,gitfig文件中。此外,我們也可以用過以下命令來查詢我們所配置的用戶名和郵箱:

1# 查詢配置
2git config -l

二、Git的理論基礎

該部分的內容來自:https://www.cnblogs.com/best/p/7474442.html

工作區域

Git本地有三個工作區域:工作目錄(Working Directory)、暫存區(Stage/Index)、資源庫(Repository或Git Directory)。如果在加上遠程的git倉庫(Remote Directory)就可以分為四個工作區域。文件在這四個區域之間的轉換關係如下:

  • Workspace:工作區,就是你平時存放項目代碼的地方
  • Index / Stage:暫存區,用於臨時存放你的改動,事實上它只是一個文件,保存即將提交到文件列表信息
  • Repository:倉庫區(或本地倉庫),就是安全存放數據的位置,這裏面有你提交到所有版本的數據。其中HEAD指向最新放入倉庫的版本
  • Remote:遠程倉庫,託管代碼的服務器,可以簡單的認為是你項目組中的一台電腦用於遠程數據交換

本地的三個區域確切的說應該是git倉庫中HEAD指向的版本

  • Directory:使用Git管理的一個目錄,也就是一個倉庫,包含我們的工作空間和Git的管理空間。
  • WorkSpace:需要通過Git進行版本控制的目錄和文件,這些目錄和文件組成了工作空間。
  • .git:存放Git管理信息的目錄,初始化倉庫的時候自動創建。
  • Index/Stage:暫存區,或者叫待提交更新區,在提交進入repo之前,我們可以把所有的更新放在暫存區。
  • Local Repo:本地倉庫,一個存放在本地的版本庫;HEAD會只是當前的開發分支(branch)。
  • Stash:隱藏,是一個工作狀態保存棧,用於保存/恢復WorkSpace中的臨時狀態。

工作流程

git的工作流程一般是這樣的:

1. 在工作目錄中添加、修改文件;

2. 將需要進行版本管理的文件放入暫存區域;

3. 將暫存區域的文件提交到git倉庫。

因此,git管理的文件有三種狀態:已修改(modified),已暫存(staged),已提交(committed)

版本庫的初始化

我們需要創建一個目錄來作為我們的項目根目錄,進入到該目錄之後,右鍵git bash來啟動git的操作窗口

1# 選擇對應的目錄,右鍵點擊git bash,然後創建一個目標項目目錄,並進入該目錄
2mkdir temp_project
3cd temp_project

之後,我們需要將創建的目錄初始化為Git所能識別倉庫,可以通過git init來實現。初始化完成之後,就會在該目錄中自動創建出一個.git的隱藏目錄,關於我們項目的版本信息都會存儲在該目錄當中。

1# 初始化一個倉庫,之後會多出.git隱藏文件
2git init

以上就是我們自定義一個倉庫的過程。此外,我們還可以基於已經存在Git倉庫來進行操作,在Github中查找自己想要的Git倉庫,複製其鏈接,然後通過git clone來對該倉庫進行克隆,從而將該倉庫下載到我們的本地目錄中:

1# 使用clone克隆Github中已經存在的倉庫
2git clone XXXXXX.git

文件的四種狀態

我們要對文件的版本進行控制,首先需要明白當前文件處於什麼樣的狀態,對於不同狀態下的文件,我們可以進行不同的操作。而在Git中,文件主要是有四種狀態:

  • Untracked: 未跟蹤, 此文件在文件夾中, 但並沒有加入到git庫, 不參与版本控制. 通過git add 狀態變為Staged.
  • Unmodify: 文件已經入庫, 未修改, 即版本庫中的文件快照內容與文件夾中完全一致. 這種類型的文件有兩種去處, 如果它被修改, 而變為Modified. 如果使用git rm移出版本庫, 則成為Untracked文件
  • Modified: 文件已修改, 僅僅是修改, 並沒有進行其他的操作. 這個文件也有兩個去處, 通過git add可進入暫存staged狀態, 使用git checkout 則丟棄修改過, 返回到unmodify狀態, 這個git checkout即從庫中取出文件, 覆蓋當前修改
  • Staged: 暫存狀態. 執行git commit則將修改同步到庫中, 這時庫中的文件和本地文件又變為一致, 文件為Unmodify狀態. 執行git reset HEAD filename取消暫存, 文件狀態為Modified

Git的初步操作

了解了文件的狀態之後,我們不妨模擬一個關於論文的例子來初步了解下版本庫以及文件的簡單操作:

  • 創建一個工作區,並進行初始化
1# 創建一個工作區
2mkdir my_dir
3# 進入工作區
4cd my_dir
5# 通過init命令將工作區轉化成Git可以管理的倉庫
6git init
7# 在該倉庫中創建一個paper.txt,用於編寫我們的論文
8touch paper.txt
  • 我們在paper.txt之中編輯如下內容:
1# 我們在`paper.txt`之中編輯如下內容:
2Oh, my god, I will write my graduate paper.
3Come on, Taoye.
  • 通過add命令將paper.txt文件添加到暫存區
1# 通過add命令將paper.txt文件添加到暫存區
2$ git add paper.txt
  • 通過commit命令將暫存區中的內容提交到倉庫
1# 通過commit命令將暫存區中的內容提交到倉庫,指定提交paper.txt文件
2$ git commit -m "start writing my paper" paper.txt
3
4# 對工作區中的文件統一提交至暫存區
5$ git commit -m "XXXXXXXXXXX"

使用commit命令之後,就能將我們暫存區中的內容提交至倉庫中,其中的-m參數表示的是提交說明,用於解釋說明本次提價的內容。提交完成之後,我們可以在Git中通過git status來查看文件的狀態:

1# 查看指定文件的狀態
2git status paper.txt
3# 查看所有文件的狀態
4git status

以上操作過程如下圖所示:

三、關於文件的各種操作

文件修改之後

在上節中,我們已經介紹了文件的四種狀態,並且以關於論文的例子來初步了解了版本庫以及文件庫的簡單操作。

假設現在論文指導老師對Taoye提出了要求:“Taoye同學,時間來不及了,你今天必須給我完成論文的摘要部分!!!否則,後果自負!!!”

“Excuse me?今天?我遊戲打得正嗨呢。面對老師如此強硬的要求,沒辦法了,只能暫停上王者的上分階段了,開始剛論文。”對此,Taoye進行了一個騷氣的三下五除二操作,廣泛的涉獵各種優秀的學者文獻並進行構思,迅速開寫paper.txt中的摘要部分,完成之後的內容如下所示:

1Oh, my god, I will write my graduate paper.
2Come on, Taoye!
3
4I have finished the summary today!

之後,我們再通過git status命令來查看一下該論文文件的狀態:

1$ git status paper.txt
2On branch master
3Changes not staged for commit:
4  (use "git add <file>..." to update what will be committed)
5  (use "git checkout -- <file>..." to discard changes in working directory)
6
7        modified:   paper.txt
8
9no changes added to commit (use "git add" and/or "git commit -a")

此時,我們可以發現工作區中的內容發生了修改,並且與我們上一次提交后版本庫中的內容不一致,這個時候,Git就會提醒我們需要再次進行add、commit操作來將修改后的文件添加並提交至版本庫。另外,我們也可以使用diff命令來查看據上次提交所修改的內容:

1# 查看據上次提交所修改的內容
2git diff paper.txt

當確認文件修改的內容無誤之後,我們就可以使用add、commit操作來提交我們的文件到版本庫中:

1# 添加至暫存區
2git add paper.txt
3# 提交至版本庫
4git commit -m "finished the summary" paper.txt
5# 查看狀態
6git status paper.txt

OK,Taoye從白天剛到深夜。如次一來,總算是完成了老師給的要求,興奮的將內容提交給老師審閱,然後又繼續打王者了。

版本的回退

Taoye連續打了12h的遊戲,有點累了。重新打開自己完美的論文欣賞一下,卻突然發現有幾個錯別字,這種低級錯誤實屬不應該出現啊。思慮半刻,Taoye修改之後,再次add commit就完事了:

paper.txt修改之後的內容:

1Oh, my god, I will write my graduate paper.
2Come on, Taoye!
3
4I have finished the summary today!
5Some typos have been fixed.

再次add、commit操作:

1git add paper.txt
2git commit -m "fixed the typos" paper.txt

也就是說,現在我們論文總共是有三個版本,分別是:初始化的論文、完成摘要的論文、修改錯別字后的論文。我們可以通過log命令來查看各種版本的論文文件:

1# 显示各種版本文件的詳細信息
2$ git log paper.txt
3# 通過一行簡單显示文件的信息
4$ git log --pretty=oneline paper.txt
5d7938315aa0f4a4d40c6a94a10ab8db25b50e23b (HEAD -> master) fixed the typos
6454cc579f0fe51fdfd97132384a9c5fcaa1993c2 finished the summary
7dc1dcd9501dec52e6160ce98bb5c118abb805289 start writing my paper

從以上log的輸出信息,我們可以知道所提交文件的所有歷史記錄,其中記錄了提交時間、提交作者(郵箱)、提交說明(-m)等信息。並且如果我們仔細一看,會發現每一個版本的文件都會對應一個commit id,這個id其實就相當於每一個版本的唯一標識。比如,從上面的輸出結果,我們可以得到第一個版本的commit id = dc1dcd9501dec52e6160ce98bb5c118abb805289,而這個commit id的作用就是方便我們日後自由“穿梭”到各個版本(就是一種穿越時空的意思)。

Taoye的論文指導老師審閱了摘要內容之後,正言厲色的說道:“你這寫的啥玩意兒?牛頭不對馬嘴,而且居然還有錯別字?”

沒辦法了,Taoye只能虛心接受老師的批評,再次苦逼的修改論文了。

我們現在論文是版本三,有沒有一種快速有效的方法回退到版本一呢???在Git中,我們可以通過git reset --hard來實現這個需求,也就是版本的回退。版本的回退可以用兩種形式,一種是通過HEAD來基於當前版本進行回退,另一種是通過commit id來回退到指定的版本,其用法如下所示:

1# HEAD表示的是當前版本,可以通過HEAD^回退到上一個版本
2git reset --hard HEAD^
3git reset --hard HEAD^^     # 回退到上上版本,回退到多少個版本之前就使用多少個^
4git reset --hard HEAD~50    # 回退到50個版本之前
5
6# 指定commit id來進行版本回退
7git reset --hard dc1dcd

值得注意的是,我們通過指定id來進行版本回退的時候,由於id過長,我們沒必要全寫,只需要傳入前幾個字符保證id的唯一性即可。有使用過Docker的朋友,應該會熟悉,我們在指定容器的時候,也是類似的操作。

下面Taoye版本三的論文迅速回退到版本一,騷操作如下:

1$ git reset --hard dc1dcd
2$ cat paper.txt
3Oh, my god, I will write my graduate paper.
4Come on, Taoye.

關於版本穿梭的簡單解釋:其實,在Git中,有個HEAD指針用於指向當前版本,當我們進行版本回退的時候,其實就是改變HEAD的指向,指向對應的版本也就實現了版本的回退。這有點類似於數據結構中鏈表的操作。

此外,我們還可以通過git reflog來查看當前版本文件的變換:

1$ git reflog paper.txt
2dc1dcd9 HEAD@{1}: reset: moving to dc1dcd                       # 版本的回退(回退到版本一)
3d793831 (HEAD -> master) HEAD@{2}: commit: fixed the typos      # 第三次提交(版本三)
4454cc57 HEAD@{3}: commit: finished the summary                  # 第二次提交(版本二)
5dc1dcd9 HEAD@{4}: commit (initial): start writing my paper      # 第一次提交(版本一)

撤銷修改

假設Taoye在寫論文的時候,每天都在不斷地修修改改,心裏面非常的煩躁,很不是滋味。於是乎,在paper.txt中添加如下一句話:

1I don't like my tutor, he often criticizes me.

然而,在打算提交的時候,想了想還是有點不太妥,要是因為這麼一句話,最終導致無法畢業那就完蛋了。對此,我們在對文件commit之前使用’git status paper.txt’命令發現,可以通過checkout --來進行修改撤銷,撤銷至修之前的狀態,操作如下:

1$ git checkout -- paper.txt
2$ cat paper.txt     # 執行之後,可以發現已經撤銷到無最後一句的狀態

以上是發生在我們對工作區中的文件進行修改,但是還沒有執行git add操作,將工作區中的paper.txt添加至暫存區中的場景,已達到撤銷至修改之前的狀態。假設我們在對paper.txt修改之後,再執行git add paper.txt命令將文件添加至暫存區,那麼我們該怎樣撤銷呢?按照思路,我們可以先通過git reset HEAD將暫存區中的內容撤銷掉放回工作區,然後撤銷工作區即可實現需求,對此,有如下操作:

1# 將暫存區中的內容撤銷掉放回工作區
2git reset HEAD paper.txt
3# 撤銷工作區修改的內容
4git checkout -- paper.txt

如此一來,就完美的將I don't like my tutor, he often criticizes me.撤銷掉,Taoye也就能順利畢業了。關於撤銷,要記得與版本回退區分開來,撤銷是我們在對文件進行修改但是還沒有進行commit的時候發生的,而版本回退是在執行了commit提交操作之後發生的。

文件的刪除

在上面的內容中,我們已經詳細的介紹了關於文件的修改、版本回退、撤銷等操作,下面我們來講講文件在刪除之後應該會出現哪些操作。

假設現在出現了這麼一種情況:Taoye有個頑皮的妹妹,她在用我電腦的時候,不小心將我的paper.txt論文文件從本地磁盤刪除了。一氣之下,Taoye將妹妹關進了小黑屋自我反省七天。悲劇啊,Taoye忙活了將近一個月的論文就此煙消雲散,Git該如何挽回這樣的結局呢?

paper.txt文件刪除之後,我們使用git status來查看一下文件的狀態:

1$ git status
2On branch master
3Changes not staged for commit:
4  (use "git add/rm <file>..." to update what will be committed)
5  (use "git checkout -- <file>..." to discard changes in working directory)
6
7        deleted:    paper.txt
8
9no changes added to commit (use "git add" and/or "git commit -a")

在Git看來,你將文件從工作區中刪除,其實也是對文件的一種修改。也就是說,現在我們的工作區中的內容與版本庫中的內容不一致(工作區沒有了paper.txt文件,而版本庫依然存在paper.txt文件)。為了將兩者空間中的內容達到一致,我們現在有兩種選擇,一是將版本庫中的paper.txt文件刪除掉,二是將工作區中的paper.txt文件恢復。

有了以上的思路,我們可以有如下操作:

1# 將版本庫中的paper.txt文件刪除掉,需要執行commit才會生效
2git rm -f paper.txt
3git commit -m "delete the paper.txt"
4
5# 將工作區中的paper.txt文件恢復
6git checkout -- paper.txt

對於文件的刪除,需要注意的是,只有提交到版本庫的文件,才能進行恢復,對於為提交到版本庫的文件是無法進行恢復的。

四、本地項目遠程提交到Github倉庫

Taoye在之前參加2019年騰訊微信小程序比賽的時候,開發了一個關於偵探推理的項目。Taoye現在想要將該項目從本地提交到Github,該如何實現呢?

我們在實現該需求之前,首先需要將本地與Github進行聯通。對此我們應該通過ssh在本地生成一個公鑰,然後在Github中配置該公鑰。操作如下:

1# 1、生成公鑰,執行之後會在.ssh目錄中生成秘鑰文件,其中id_rsa.pub表示的是公鑰
2cd ~/.ssh
3ssh-keygen -t rsa 26647879@qq.com
4# 2、進入github,settings -> SSH keys -> add key,然後將id_rsa.put中的公鑰複製進去
5# 3、配置好公鑰之後,需要驗證本地與github的連通性
6ssh -T git@github.com

在確認本地與Github聯通之後,我們就能正常地將項目從本地遠程提交到Github中了。

  • 登錄Github,創建一個目標倉庫,取名為detective,用來存儲我們的項目,並複製其中的.git鏈接地址
  • 在Github創建倉庫之後,需要將該遠程倉庫與本地關聯起來
1# 在本地關聯目標倉庫,方便之後將項目推送至該遠程倉庫
2git remote add origin https://XXXXXX.git
  • 進入我們的本地項目,然後初始化為git可管理的倉庫
1cd detective
2git init
  • 將工作區中項目的所有文件添加至暫存區
1git add ./*
2

  • 將暫存區中的內容提交到版本庫當中
1git commit -m "commit the detective project" ./*
  • 將項目添加到版本庫之後,我們就可以將該項目推送至遠程倉庫了
1# 第一次推送
2git push -u origin master
3# 推送之後,如果我們的項目發生了修改,我們可以不用在使用-u參數進行推送
4git push origin master
5
6# 另外,如果有需要的話,我們還可以使用clone命令將遠程倉庫克隆到本地
7git clone https://XXXXXX.git

五、Git的分支管理

分支是Git當中一個非常重要的概念,分支有點類似於樹枝,也就意味着為了避免影響主線的正常開發,我們可以將任務從主線中分離開來,從而形成一個分支,之後的任務都是在分支中來完成的,當任務完成之後,就可以將完整的任務從分支提交到主線。

在前面版本回退一節當中,我們知道,每一次的提交都會產生一個版本,多次提交自然也就會產生多個版本。我們可以將每一個版本看做是一個珠子,而多個版本就會通過一條線串聯起來,從而形成一條版本鏈。這個版本鏈其實就是一個master分支,也就是我們上面所說的主線,我們每一次的提交都是基於master分支來完成的,而HEAD指針則是用來指向當前分支(在沒有其他分支的前提下,就是指向master)。

下面的圖文講解分支的內容,來自廖大大的教程:https://www.liaoxuefeng.com/wiki/896043488029600/900003767775424

一開始的時候,master分支是一條線,Git用master指向最新的提交,再用HEAD指向master,就能確定當前分支,以及當前分支的提交點:

每次提交,master分支都會向前移動一步,這樣,隨着你不斷提交,master分支的線也越來越長。

當我們創建新的分支,例如dev時,Git新建了一個指針叫dev,指向master相同的提交,再把HEAD指向dev,就表示當前分支在dev上:

你看,Git創建一個分支很快,因為除了增加一個dev指針,改改HEAD的指向,工作區的文件都沒有任何變化!

不過,從現在開始,對工作區的修改和提交就是針對dev分支了,比如新提交一次后,dev指針往前移動一步,而master指針不變:

假如我們在dev上的工作完成了,就可以把dev合併到master上。Git怎麼合併呢?最簡單的方法,就是直接把master指向dev的當前提交,就完成了合併:

所以Git合併分支也很快!就改改指針,工作區內容也不變!

合併完分支后,甚至可以刪除dev分支。刪除dev分支就是把dev指針給刪掉,刪掉后,我們就剩下了一條master分支:

分支的創建與合併

在上面,已經介紹了分支的概念及其斷鏈、成鏈的原理過程,下面我們通過Git命令來完成分支的創建與合併。

在Git中,我們可以通過git branch來查看有哪些分支、git branch xxx來創建一個分支,其中帶有*號的表示當前分支、git checkout xxx來切換分支:

1# 創建一個名為dev的分支
2$ git branch dev
3# 從master分支切換到dev分支中
4$ git checkout dev
5# 查看當前有多少分支
6$ git branch
7
8# 此外,我們還實現分支的創建、切換這兩個操作合併執行
9$ git checkout -b dev

現在,我們不妨在剛剛創建的dev分支中對paper.txt的內容進行編輯,在最下方添加這麼一句話:I'm writing the content of my paper.。編輯完成並保存之後,我們提交到版本 庫,並再次切換到master分支,使用cat命令來查看paper.txt的內容。

1$ git checkout dev      # 切換到dev分支
2$ vim paper.txt         # 編輯paper.txt,並增添一句話
3$ git add paper.txt     # 添加到暫存區
4$ git commit -m "writing the content of this paper" paper.txt   # 提交到版本庫
5$ cat paper.txt         # 查看paper.txt內容
6$ git checkout master   # 再次切換到master分支
7$ cat paper.txt         # 查看paper.txt內容

採用cat命令兩次查看paper.txt內容時,我們會發現在執行后一次命令時,paper.txt中的內容並沒有添加新增的一句話,這主要是因為我們剛剛採用vim編輯paper.txt的時候是基於dev分支進行的,提交也是提交到dev分支,而非master分支,所以當我們切換到master分支的時候並不能夠看見paper.txt編輯后的內容。如下圖所示:

而我們要想在master分支中查看到paper.txt的新內容,則需要將dev分支合併到master主分支中才行,採用的是git merge命令,操作如下:

1$ git checkout master
2$ git merge dev

合併完成之後,dev的任務已經完成了,也就沒有必要存在了,可以通過git branch -d xxx來刪除分支:

1$ git branch -d env
2Deleted branch env (was e9c7421).

單人分支合併時的衝突解決

在編程的世界里,多進程佔據了一個舉足輕重的地位。在高併發、高流量的場景下,我們一般通過多進程來提高項目的服務效率,以便提高用戶體驗。話雖如此,但是在使用多進程的時候,許多問題同樣會慢慢浮出水面。同樣地,Git分支雖然能夠方便多個的用戶協同開發,但是將多個不同內容的分支進行合併的時候卻會產生衝突,作為一個對技術有追求的Coder,我們應該要理解為什麼會產生衝突,以及產生衝突后我們應該怎樣解決。

出現衝突的場景:

  1. 切換到dev分支后,對paper.txt進行編輯,然後將保存后的文件提交到版本庫中。
  2. 切換到master分支,對paper.txt進行編輯,將保存后的文件提交到版本庫。
  3. master分支下,將dev分支進行合併。
 1# 1、在dev分支中對paper.txt文件進行編輯,並提交到版本庫
2git checkout dev
3git vim paper.txt
4git add paper.txt
5git commit -m "the first operation" paper.txt
6
7# 2、在master分支中對paper.txt文件進行編輯,並提交到版本庫
8git checkout master
9git vim paper.txt
10git add paper.txt
11git commit -m "the second operation" paper.txt
12
13# 3、在master分支中,將dev分支合併
14git merge dev

此時,在我們執行merge命令進行分支合併的時候,會出現如下內容:

1$ git merge dev
2Auto-merging paper.txt
3CONFLICT (content): Merge conflict in paper.txt
4Automatic merge failed; fix conflicts and then commit the result.

從如上Git給我們提供的信息可以知道,此時已經產生衝突,我們必須手動解決衝突才能再次提交,使用git status paper.txt也能查看產生衝突的信息。我們通過vim打開paper.txt文件可以看見如下內容:

 1Oh, my god, I will write my graduate paper.
2Come on, Taoye!
3
4I have finished the summary today!
5Some typos have been fixed.
6I'm writing the content of my paper.
7<<<<<<< HEAD
8
9the second operation.
10=======
11
12the first operation.
13>>>>>>> dev
14

對此,我們要想解決衝突,則需要在master主分支中手動編輯該文件,編輯並保存完成之後,在將文件提交到版本庫即可:

1vim paper.txt
2git add paper.txt
3git commit -m "solve the conflict" paper.txt
4
5# 查看分支的合併情況
6git log --graph --pretty=oneline --abbrev-commit

下面原則來自廖大大的Git教程:https://www.liaoxuefeng.com/wiki/896043488029600/900005860592480
在實際開發中,我們應該按照幾個基本原則進行分支管理:

  1. 首先,master分支應該是非常穩定的,也就是僅用來發布新版本,平時不能在上面幹活;
  2. 那在哪幹活呢?幹活都在dev分支上,也就是說,dev分支是不穩定的,到某個時候,比如1.0版本發布時,再把dev分支合併到master上,在master分支發布1.0版本;
  3. 你和你的小夥伴們每個人都在dev分支上幹活,每個人都有自己的分支,時不時地往dev分支上合併就可以了。

所以,團隊合作的分支看起來就像這樣:

多人協作下的衝突解決

現在導師給Taoye提出的新需求是:两天內完成論文的初稿並提交。

Taoye大量的時間都花費在開黑中了,两天內完成這個任務對Taoye來說有點困難。於是乎,Taoye想要找妹妹幫忙完成論文的part1部分,而自己完成part2部分。如此一來,兩個進程協同進行,也就能完美的實現了導師給的需求。妙哉,妙哉!Taoye心想到這,立馬提交自己論文的半成品到遠程倉庫,然後給妹妹提供一個git鏈接供其clone。

1# Taoye將本地論文提交到遠程倉庫
2$ git push origin master
1# 妹妹將遠程倉庫克隆到本地
2$ git clone XXXXXX.git

OK,既然兩人的本地都有了論文文件,那麼接下來就要開始并行完成各自的任務了,為了避免自己的操作給主分支帶來不好的影響,於是在master分支中創建一個dev分支用來編輯文件。由於妹妹的效率比Taoye要快,所以率先完成了論文part1部分的內容,對此,妹妹有如下操作:

1# 妹妹的操作
2$ git branch dev
3$ git checkout dev
4$ vim paper.txt

並且在paper.txt添加內容:sister have finished the part1.,part1部分的內容完成之後,將dev分支迅速推送至遠程倉庫:

1$ git add paper.txt
2$ git commit -m "sister have finished the part1" paper.txt
3$ git push origin dev

OK,Taoye交給妹妹的任務已經完成了,於是就興奮的出去玩耍了。畢竟這篇論文是屬於Taoye的,所以還是需要認真的完成,自然花費的時間也就更多了。經歷了一晚上通宵的時間,終於是順利完成了part2部分的內容,於是屁顛屁顛的將論文提交至遠程倉庫:

1# Taoye的操作
2$ git checkout dev
3$ vim paper.txt
4# 在paper.txt添加一句:taoye have finished the part2
5$ git add paper.txt
6$ git commit -m "taoye have finished the part2" paper.txt
7$ git push origin dev

而就在Taoye推送論文到遠程倉庫的時候,由於自己推送內容與妹妹推送的內容不一致,所以導致推送失敗。我們通過Git給出的提示信息可以知道,要想解決這個衝突,首先需要通過pull命令將最新的提交拉取下來,然後與本地合併,解決衝突之後再推送到遠程倉庫。為此,Taoye立馬執行了pull命令:

1$ git pull

而在執行pull命令的時候,糟糕的問題又接踵而至了,Git提示說:There is no tracking information for the current branch.,也就是說本地的分支與遠程沒有建立鏈接。對此,我們可以建立鏈接后再執行pull命令:

1$ git branch --set-upstream-to=origin/dev dev
2$ git pull

雖然可以執行pull命令,但是會出現衝突提示,所以我們需要首先手動解決衝突,解決的方式和上節中一樣:對paper.txt文件進行編輯,然後提交並推送至遠程倉庫。所以,Taoye對paper.txt文件進行編輯之後,內容如下:

1taoye have finished the part1
2taoye have finished the part2

編輯好后,將文件保存並推送至遠程倉庫:

1$ git add paper.txt
2$ git commit -m "finished the part1 and part2" paper.txt
3$ git push origin dev

所以,在多人協作工作時我們一般准守如下過程:

  1. 完成任務后首先使用git push origin xxx推送至遠程倉庫
  2. 如果推送失敗,則需要執行git pull命令將最新的提交拉取下來
  3. 如果拉取失敗,則可能需要建立連接,所以執行git branch --set-upstream-to=origin/xxx xxx命令
  4. 解決之後,再次執行git pull命令嘗試拉取最新提交
  5. 此時,我們需要對衝突文件進行修改,等到修改完成之後,將文件推送至遠程倉庫

六、標籤管理

在上面的內容中,我們有介紹過,可以根據版本號(很長的字符串)來實現任意版本之間的穿越。但是通過這種較長字符串版本號的形式對用戶並不是特別友好,看的腦闊有點疼。所以我們一般可以給每一個版本貼上一個標籤,並且可以通過這個標籤來定位任意的版本,從而更加容易的實現版本穿越等需求。

在這,我們也可以將標籤看做是版本號的一個別名,使用標籤就相當於使用版本號,兩者的作用是等價的。如果有使用過Docker的話,應該會知道,在Docker中,我們每創建一個容器,Docker都會分配一個容器id以便於我們定位對應的容器,而我們自己也可以為每一個容器定義一個別名。我們在使用一系列的Docker命令對容器進行操作的時候,既可以通過容器id,也可以通過別名的形式來進行操作。

Git中,我們主要是採用tag命令來管理標籤,由於標籤比較的簡單,這裏就不一一講解了,與標籤相關的命令主要有以下一些:

 1$ git tag                       # 查看所有標籤
2$ git tag v1.0                  # 沒有指定版本,則默認給當前版本打標籤
3# 查看各個版本信息(版本號)
4$ git reflog paper.txt | git log --pretty=oneline paper.txt
5$ git tag v0.9 a35d6b           # 根據版本號來打標籤
6# 打標籤的同時,給標籤添上相應的說明
7$ git tag -a v0.1 -m "version 0.1 released" a35d6b
8$ git show v1.0                 # 查看對應的標籤信息
9$ git tag -d v0.9               # 刪除標籤
10
11$
 git reset --hard v0.9         # 根據標籤實現版本穿越

總結

總的來講,Git上手還是很快的,關鍵在於平時需要加強Git操作命令的訓練。以上關於Git的命令只是一部分,但如果掌握上述內容,還是可以輕鬆滿足Git的實際需求的。如果有興趣想要了解更多關於Git的知識,可以自行查閱相關的文檔或是書籍來進一步的學習。

參考資料

一個小時學會Git:https://www.cnblogs.com/best/p/7474442.html#!comments
廖雪峰Git教程:https://www.liaoxuefeng.com/wiki/896043488029600

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

【其他文章推薦】

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

※如何讓商品強力曝光呢? 網頁設計公司幫您建置最吸引人的網站,提高曝光率!

※綠能、環保無空污,成為電動車最新代名詞,目前市場使用率逐漸普及化

※廣告預算用在刀口上,台北網頁設計公司幫您達到更多曝光效益

※教你寫出一流的銷售文案?

※別再煩惱如何寫文案,掌握八大原則!

2017 CTOY 花落福田戴姆勒汽車

在頒獎典禮上,中國年度卡車評委會主席於晶對歐曼EST超級卡車給予了高度評價:歐曼EST超級卡車不僅秉承了歐洲重卡設計理念,在質量和效率方面也引進了戴姆勒的體系和標準,在動力、環保、安全、智能化方面展示出富有前瞻性的技術水平,在實際測試過程中,歐曼EST的加速時間、制動距離以及車內噪聲等多項數據都處於行業領先水平。

2016年11月17日,“2017中國年度卡車”(CToY)頒獎典禮暨廣州商用車展媒體之夜”在廣州舉行;中國國際貿易促進委員會汽車行業分會副會長楊琳、國際年度卡車組委會主席Gianenrico Griffini(格里菲尼)、中國年度卡車評委會主席於晶以及來自整車及零部件生產企業的代表、國內主流行業媒體代表,共同見證了這一中國卡車行業的年度盛事。

在經過包括技術創新、舒適性、安全性、操控性、燃油經濟性、清潔環保和總體擁有成本等方面的綜合評價后,11月正式中國上市的歐曼EST超級卡車最終摘得了“2017中國年度卡車”桂冠,成為中國首個獲得此項殊榮的重卡車型;這是歐曼EST在歷經了“4年的歐洲研發、德國DEKRA的歐洲嚴苛測試、德國漢諾威全球上市”的品質驗證后,獲得的首個極具含金量的年度大獎;這是國際年度卡車評委會、中國年度卡車評委會對歐曼EST超級卡車的卓越品質給予的高度認可,也是對福田戴姆勒汽車在推動中國重卡市場高端化發展方面給予的肯定。

2017中國年度卡車大獎含金量有多高?

中國年度卡車是國內商用車行業首個引入“國際年度卡車”獎項評選標準及規則的獎項, 並結合中國道路運輸實際情況,以客觀公正的平台、專業縝密的視角評選出年度最具標杆意義的中國卡車車型。

“國際年度卡車”獎是目前國際上廣泛認可的權威評選卡車類獎項,代表了歐洲最嚴苛的評價指標。作為世界最大的商用車生產商梅賽德斯-奔馳憑藉旗下多款創新車型,曾8次摘得“國際年度卡車”獎項,成為榮獲此獎項次數最多的品牌。 “中國年度卡車”與“國際年度卡車”評選有着同樣的含金量,受邀出席頒獎典禮的國際年度卡車評委會主席Gianenrico Griffini(格里菲尼)也表達了對“2017中國年度卡車”評選的肯定,並表示國際年度卡車評委會將為中國年度卡車評選提供最大的支持。

“2017中國年度卡車”大獎的所有參評車型,必須經過由國際年度卡車評委會成員、媒體代表、用戶及第三方測試機構組成的專業評委會客觀公正、專業縝密的評測;其評測標準也是依據國際年度卡車評選及歐洲卡車1000分評測方法,涉及駕駛室空間及內飾設計、駕乘舒適性、操控性能、車輛總擁有成本、安全性、動力性等6個大項、26個小項;無論是從評價體系的成熟性上還是從評測人員及項目的專業性上,“2017中國年度卡車”獎項的含金量可謂首屈一指。

在頒獎典禮上,中國年度卡車評委會主席於晶對歐曼EST超級卡車給予了高度評價:歐曼EST超級卡車不僅秉承了歐洲重卡設計理念,在質量和效率方面也引進了戴姆勒的體系和標準,在動力、環保、安全、智能化方面展示出富有前瞻性的技術水平,在實際測試過程中,歐曼EST的加速時間、制動距離以及車內噪聲等多項數據都處於行業領先水平。

超級卡車憑什麼能獲得年度卡車大獎?

“2017中國年度卡車大獎”旨在頒發給最近12個月內發布的、從多方面對道路運輸效率做出最大貢獻的中國品牌卡車;更高的質量、更強的性能、更快的效率、更低的成本,歐曼EST超級卡車在提升整个中國重卡技術與品質方面做出了巨大貢獻,換句話說,歐曼EST超級卡車成為“2017中國年度卡車”實至名歸。“歐曼EST超級卡車充分吸收了‘超級卡車全球創新聯盟’成員的先進科技成果,以“北京超級卡車創新中心”為依託,實現了自動駕駛、新能源及車聯網等智慧科技的應用,使歐曼EST超級卡車擁有了媲美國際重卡的技術實力。” 福田戴姆勒汽車品牌總監李健致辭中表示。

歐曼EST超級卡車是福田戴姆勒汽車鏈合德國戴姆勒整車及動力技術,攜手美國康明斯、德國采埃孚、德國大陸等超級卡車全球創新聯盟成員,面向準時高效、長途高附加值貨運等高端物流客戶,歷時4年以歐洲標準研發, 完成了歐洲最嚴苛的德國DEKRA測試,以及歷經1000萬公里實際道路測試,實現了油耗降低5-10%,碳排放減少10-15%,貨運效率提升30%,實現智能輔助駕駛、B10壽命達到150萬公里以及10萬公里的超長保養周期的卓越性能,全面提升了中國現代化物流體系在智能化、安全性、高效性方面的發展速度。歐曼EST超級卡車於11月14日,在2016中國上海智能網聯汽車展覽會上,正式上市,登陸中國市場,為中國用戶在未來高效物流運輸市場競爭中,注入了來自“超級卡車”的超級競爭力!

參与測試的中國年度卡車評委會的評委一致認為:歐曼EST的駕駛室在空間和舒適性方面接近歐洲品牌卡車,非常適合超長距離運輸使用;其採用的采埃孚TraXon自動變速器與奔馳、康明斯發動機匹配完美,對於中國市場而言是一項巨大的進步,可以滿足中國用戶日益提高的使用需求;此外,歐曼EST超級卡車還具有良好的視野和高速行駛穩定性,多項主被動安全裝置讓車輛更加容易操控;採用氣囊減振的駕駛室及空氣懸架底盤,在測試過程中帶來了良好的駕乘舒適性;在有效載荷和保養間隔等方面能幫助用戶有效提高運營效率,作為一款專為中國市場打造的高端長途運輸車型,歐曼EST超級卡車全面展示了中國重卡的最新技術水平。

歐曼EST超級卡車在歷經了歐洲研發、歐洲測試、歐洲車展、歐洲上市之後,回到中國,憑藉在“智能化、安全性、可靠性、經濟性及舒適性”方面的卓越表現,獲得“2017中國年度卡車”大獎,以歐洲科技的品質內涵,確立了在中國重卡行業的技術領先地位,全面滿足重卡用戶高端化、高效化、智能化的需求!未來,福田戴姆勒汽車將再接再厲,充分吸收“超級卡車全球創新聯盟”成員的先進科技成果,以“北京超級卡車創新中心”為依託,以品質、技術和創新能力打造更具核心競爭力的產品,不斷提升中國卡車技術水平本站聲明:網站內容來源於http://www.auto6s.com/,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

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

※如何讓商品強力曝光呢? 網頁設計公司幫您建置最吸引人的網站,提高曝光率!

※綠能、環保無空污,成為電動車最新代名詞,目前市場使用率逐漸普及化

※廣告預算用在刀口上,台北網頁設計公司幫您達到更多曝光效益

※教你寫出一流的銷售文案?

※別再煩惱如何寫文案,掌握八大原則!

全球第一款48v混動車型領銜 長安三款高品質新能源車上市

另一問題是關於剛剛在發布會上提出的,我們到2020年60萬輛的北汽銷量目標,我算了一下大概是佔了我們國家提出的目標,500萬輛佔比大約是佔到12%左右,我就想問咱們對於實現這樣的目標有沒有信心,因為到2016年為止來看的話,咱們目前為止的銷量,2016年發布的是15000多輛,離我們的目標還是有一定的距離的,就想問你咱們今後的市場銷量目標的情況。

11月18日,長安汽車三款新能源車型——全球首次搭載48V混動技術的量產車型新逸動藍動版,細分市場最長續航里程高品質純電動車新奔奔EV,高品質、高操控性、高安全性純電動車新逸動EV於2016廣州國際車展正式上市,三款車型的售價分別是:新逸動藍動版 8.69萬-9.09萬、新奔奔EV 15.48萬-17.18萬、新逸動EV 23.49萬-24.99萬。

此外,長安汽車新能源公司總經理任勇先生以及長安汽車研究總院常務副院長譚本宏先生也就長安新能源戰略相關事宜作出了回答。以下為問答實錄:

換個角度看車 宋楠:你好,我是電動汽車時代的評測編輯宋楠,任最我想問你一個問題,這次我也看到了長安奔奔EV這款電動汽車,扣除補貼6.48萬元起的價格去正式推向市場,而這款車我之前也一直跟這個車差不多有一年到一年半的時間,從我個人角度來說,現在這個車市場上尤其一級市場最需要的一個車型,而在這個市場上並沒有哪一個車可以和這個車相競爭,這個車熱賣並不成問題,但是這個車有沒有可能在不具備地方補貼的城市去銷售,然後還有一個問題就是咱們長安今年或者明年在新能源領域有哪些具體的車型投放?

任勇:這個車型的話,我們長安也是從去年以來是繼逸動純電動以來的又一款新的純電動車型,這款車型根據逸動純電動車相比的話,它主要是車型、車體不一樣,打造的平台不一樣,更加小巧一些,更適合於家用和私人出行。逸動純電動相偏向於公務、租賃、出租,所以新的奔EV這個車型的話,它的售價的定位相當於更貼近於家用,比逸動的價格更低,而且在車的設計、開發階段把成本是放在第一位,品質肯定也是很關注的,所以說這款車型,我們從今天下午發布的一些數據,它的功率,它的加速,包括它的充電,包括它的最高時速都是在同級別車裡面是最好的,所以說這款車型的話,不僅僅它是在一個城市賣,它在沒有補貼的城市也可以賣,關鍵是看市場,而且我認為目前這幾年的話,主要還是依託於這個補貼。昨天我在論壇上面也談到,就是到2020年以前,我們這個新能源市場還是一個政策驅動性的市場。如果有些城市有補貼,有些城市沒有補貼,在沒有補貼的城市它的銷量可能少的多,我認為這個車本身是可以賣的,關鍵是用戶接受度。第二個就是說針對今天我們發布的這個車型的話就是新的奔奔EV,明年的話我們實際上還有一些就是CS15,CS15這個純電動我們在明年可能要推出來,同時我們的第一款pHEV的車型也講在明年推向市場。

電動邦 孫濤:你好我是來自電動幫的孫濤,我有兩個問題,第一個問題就是剛才我看到逸動的藍動版,搭載了48V微混系統,我覺得還是讓我挺驚喜的,前端時間剛看到雷諾要大肆的推廣這個技術,然後今天發布挺驚喜的。然後我想問一下,這套48V的微混系統是怎麼蛻化的,是以逸動作為一個實驗品還是說以後會逐漸的普及的所有的車型中,比如說SUV這個車型,然後第二個問題就是說,在我之前的印象,長安好像在新能源這方面相對比較低調一點,比如說相對其他的一些品牌,長安汽車在新能源方面的優勢是什麼?

譚本宏:先談一下48V,確實大家關注新能源的或者關注節能減排的這樣一些技術方面,可能都有聽說過這個技術,影響來講48V是目前來講我們行業內,特別是歐洲非常熱門的一個技術。長安在這個技術裏面確實我們也是跟國際一流的供應商來合作,比如說我們的發電機,可能大家有些知道它的起發電機是博世最早在做,但是我們沒有用博世,我們用的(發林奧)發電機。在這裏面有很多難點在裏面,特別是你怎麼樣把這些BS機這個起發電機,包括我們的鋰電池,以及整車的能量管理系統,來把它很好的做一些提升,來達到真正的降油耗,所以在這個裡面長安應該來講我們聯手世界一流的零部件企業一起來做,我們應該來說做了大概兩年多將近三年的時間,這樣順推回去的話,可能大家應該知道這個節奏,我們從產品開發的起步的決斷,我們應該說是領先的,實際上大眾也好,奧迪也好,他們現在都在做這樣的技術,但是最終的量產版,他們在歐洲的量產版,他們也即將量產,因為我們也掌握了一些信息,但是長安在這個領域裏面應該說走在前面,特別是在中國來這個市場。因為我們知道中國的法規跟歐洲是一脈相承的,而且一些使用的工況和一些交通的道路狀況,實際上我們跟歐洲也是很類似的。

另外一個就是,這肯定是一個平台化的產品,我們48V是搭在工控這樣一個H系列,我們叫做比如說H16這樣一些產品,這是一個平台化的,未來我們可能會在除了逸動之外,比如說CS35,我們的悅翔系列,包括我們的一些CS15等等這樣一系列的產品,都會來搭載這樣一個技術,而且會非常快了,後面的話就會非常快,因為它是一個平台化的技術。

從節油的效果來講的話,15%到25%的節油,從工況來努力的話應該做到15%,正常的使用的話,還可以達到25%,同時它的動力性還可以提升10%,所以說應該來講在目前的技術裏面,它是一個性價比比較高的一項技術,關鍵的難點就在於整車的集成和匹配。剛才您提到了長安在新能源這樣一個戰略上是屬於相對保守,我個人認為,如果我們把它更精準的來理解這樣一句話,就是我們在新能源產品的市場策略上我們是相對保守的,就我們沒有很大計量去重複同一個技術平台或者同一個技術難度去複製很多純電動車的產品,我們沒有去這樣做,我們也沒有做大量的複製。但是我們每推出的一個產品,應該來講從品質、從性能從各個方面應該來講都是數一數二的。另外一個作為一個新能源企業,或者剛才任總提到的,2020年以前,它是一個政策化市場,它是一個政策導向的市場,剛才孫記者聊到,你可不可以在非政策之外的去賣呢?可以賣,但是現在的成本,現在用戶接受的價格,包括現在的油價,我說如果油價漲到50塊錢一升的時候,不需要政策,肯定很快就賣出去了。但是現在環境是需要政策來推動的,所以說我覺得我們在產品的投放方面,覺得這是相對保守的,但是在技術的儲備和研究方面,我覺得長安還是有自己的特點,我們混合動力,我們插電式混合電力,我們EV,我們的插電的四驅系統,這些我們都是在做同步的研究,同時我們最近在燃料電池方法,我們也在做一些這樣一些方面的投入。我總的感覺長安在新能源技術研發方面我們是把握住一種節奏,我們也不盲從,但是我們在技術上我們應該要有一定的補貼,這是我們的理解。

愛卡汽車:我想問一下任總,現在插點式混動的市場表現都還挺不錯的,然後長安也在這方面做了很多的研究,包括逸動pHEV很早就已經展出過,然後CS75pHEV也是很早就在計劃當中,我想問一下是基於一種什麼樣的考慮?

任勇:剛才譚院長也談到了,我們長安在新能源領域裏面的一個節奏,我這再補充一點,剛才跟這位記者問的問題,大家都有這個問題,長安在新能源領域裏面走的比較穩,原來我們精神的話是积極穩妥發展新能源,現在有所變化,現在變化就是在 积極精準,就把後面兩個字變了,後面兩個字變了,我認為它的總的概念還是一個比較穩,但是它是精準當中的一個 ‘穩’,跟前幾年的穩妥不一樣,包括我們的投入,我們的市場定位要更精準,在精準的基礎上我們要加大力量,跟簡單的穩妥是不一樣。所以說我們在這個精神的指導下,我們對於純電動它的構型的研究,對於pHEV的構型的研究我們就很深入,就像你剛才問到的,我們逸動的pHEV我們內部的代號是“207”項目,我們的S301pHEV我們內部的代號“75的pHEV”,這兩個pHEV的構型是不一樣的,前面的構型是p2的構型,後面的構型可以說是p134的構型。這個構型不同所帶來的整車集成技術和它的控制匹配的技術是完全不同的,它應該說是一個疊加,我們長安要掌握大三電的技術,其中整車控制的技術是我們要自己掌握的。

大家各個整車都在說我們自己的技術,關鍵是你掌握的深度怎麼樣,我們這個整個控制是我們自己的構型,我們自己在做,不管是硬件、軟件還是底層的都是我們自己在做。這個構型的話,它的控制的構型裏面它是針對不同的架構的構型,就是傳統系統的構型是不同,它的軟件的構型不一樣,後面我們還有另外的pHEV也好,還有HEV的構型也好,我們還有其他的構型都在進行研究,這個研究不僅僅是構型的研究,這個構型所帶來的控制系統,一系列它都要進行一個迭代。所以說針對這幾種構型的pHEV研究方面,我們花了很多的精力,很多的精力這幾年實際上都還沒有研究完,也就是說還沒有達到量產的程度,所以說它還需要時間。

第一電動車網:任總,我是來自第一電動車網的記者,我有兩個問題,一方面是關於獨立的新能源乘用車資質,現在大家都關注到的像北汽新能源、力帆,他們都在申請獨立的資質,對於咱們長安來說,會不會把新能源這一塊作為一個板塊,單獨的新能源電動車乘用車資質,會不會有這樣的計劃和打算。另一問題是關於剛剛在發布會上提出的,我們到2020年60萬輛的北汽銷量目標,我算了一下大概是佔了我們國家提出的目標,500萬輛佔比大約是佔到12%左右,我就想問咱們對於實現這樣的目標有沒有信心,因為到2016年為止來看的話,咱們目前為止的銷量,2016年發布的是15000多輛,離我們的目標還是有一定的距離的,就想問你咱們今後的市場銷量目標的情況。

任勇:第一個問題的話,針對這個資質,長安我們本身就是這個資質,長安汽車是有的,長安新能源公司沒有,新能源公司沒有是因為長安的新能源公司它是一個零部件的公司,我們的整車都是在長安汽車來生產製造和銷售,所以說我們的長安新能源公司不需要具備這個資質,這是第一個問題。第二個問題的話,針對這個銷量,我們糾正一下,就是明天我們長安的規劃2017年我們不是一萬多輛,是三萬多輛,而且這幾年的話我認為它的新能源車的產銷量是呈一個對數曲線在上升,一直到2018年、2019年、2020年它的上升曲線是同等的。所以我們的規劃對於這60萬我們的信心是滿滿的,因為我們這幾年每年的新能源產品的規劃和銷量的規劃都已經排出來了,所以要實現這個60萬我認為只要按照這個規劃來走一點問題都沒有。

第一電動車網:我們的銷量是三萬多少?

任勇:目前應該是31700輛。

車市紅點:目前現在新能源汽車是一個政策,但是有一點我們也發現,像比亞迪之前生產的混動版秦,在長海賣的比較好,因為上海政策的變動,它同時改為EV,在北京賣的EV秦三版目前銷量是比較不錯的,我們也看到吉利帝豪EV,目前它的續航里程200到300公里之間,新能源汽車市場在北京,包括我身邊很多的朋友說所謂的政策,但對這些比較接地氣價格的車,確實銷量滿足消費者一些目前的需求,而且銷量增長幅度真的比較高。我想問一下長安汽車在北京來說,也是一個本地當地企業,為什麼遲遲在新能源汽車領域銷量沒有一個爆發性的一個銷量數據的出現?

任勇:長安剛才說了,我們的戰略是积極穩妥,現在是积極精準。你說如果是長安我們要花一些資源去突這個量我認為不是達不到的,只是說我們現在基於新能源這個行業的認識,主要是針對它技術方面成熟的認識,這個技術方面成熟的認識又是基於電池它的成熟度的認識,電池現在一個是它的能量密度還不能滿足我們的要求,不管是秦也好,帝豪也好,200多公里,300公里,目前來講還不能滿足。昨天我在論壇上面也談到了,雖然我在論壇上談到今後我們的續航歷程的平衡點可能是350公里到400公里,但是它這個是基於產品成熟和基礎設施普及的基礎上,它的平衡點在這個點,如果我們的基礎設施沒有這麼普及,我們的需求,用戶的需求這個續航里程是越長越好,這樣帶來的就是整車加重,能耗高,主要是它的成本高,所以基於這個電池技術還不成熟,還有一個是它的安全性,所以我們不想在這幾年推出太多車型的產品到市場上,主要是針對它後續,不僅僅是這兩年,三五年以後電池它的生命衰減是一個什麼情況,實際上你我都不是很清楚,雖然我們做了很多的實驗,那個一定是實驗,我認為現在的市場新能源市場仍然還是一個擴大規模的示範運行,我們還需要在這個過程當中不斷的去摸索一些數據,包括現在國家出台的一些監控平台,必須要監管,他們一個是處於安全標準來考慮,同時也是出於對數據的把握研究的角度來考慮,所以說我們在這兩年的話,對於上市的車型的量我們是有節制的把控。

車市紅點:按照譚總說的,今年、明年包括2020年出產品,我覺得我們的車型相對其他車型,麵包車版的供不上,我個人覺得按車型數量並不少。

任勇:逸動、奔奔還有什麼?

車市紅點:我就覺得長安汽車在整個企業當中,新能源實驗的也比較早,可能像別人的電動車企業搞一些創新性的營銷,像您說的長安的速度進程慢一點,包括後面比較弱一點,但是他們通過一些,包括北汽新能源,北汽新能源的張淼也來到一個展台了,然後我們也交流了。

新浪汽車:我是比較贊同長安比較穩妥的做法,基於老潘的問題,剛才也提到了一些政策可能後續會做,整車這一塊的補貼做一個調整, 基於這一塊我們長安會有一個什麼樣一個對策,就要以對後續政策,剛剛說的在不補貼的地方可能你本來就銷售不太好,以後補貼的地方可能就好一點。第二個問題是說,目前有很多品牌在走高端化,我們長安這一塊有一個什麼向上的一個品牌動作,因為我們最近也在看這些企業,我其實是必須贊同剛才任總說的,因為其他的類似於在歐洲的車型的想法就是不進入新能源,或者不大量推新能源車的目的是說安全性還有對用戶負責的一個態度,不會去的推,甚至說在成熟前都會去嘗試,基於這個剛剛打斷老潘說話,長安這塊說的穩妥,現在是說穩妥。

任勇:針對剛才他這個問題,他不是說的沒道理,他說的有道理,基於現在一個是補貼的情況下,我是這麼理解,我們可以來分享一下,我認為現在的市場本身就不成熟,就新能源的市場不成熟,用戶買新能源的車現在主要看重的是續駛里程和價格,我們要把續駛歷程做大,不是不容易,比較容易,就是多堆電池,你沒有其他好走的,因為我們現在用的電池的能量密度,大家水平都差不多的,包括國外,包括特斯拉,你要能跑400公里,500公里,也不外乎多裝電池而已。但是價格又是一個競爭點,價格要越點越好,所以就有了現在高端的車,像特斯拉這種高檔玩具,它對應的用戶是不一樣的。對於現在國內市場的一種普通的那種,補貼之後,幾萬塊錢,十來萬塊錢的車又是一個用戶群體,那就存在一個歷程和價格平衡的一個競爭,為了達到這個目的的話有一種做法,就是低品質的車,我們捫心自問,你們去看一看,但是我們長安不願意這麼做,做低品質的車,續駛歷程也比較多,相對比較比較多,價格也相對比較低。

我們今天發布的奔奔EV,雖然它的成本價格不算高,但是它的品質不低,我相信也有一些媒體朋友也試駕過。它的品質是不低的。所以我們基於這樣一個情況話,剛才也說了一句話,我們還不願意把這個價格降的太低去應對市場,如果降的太低的話,我們就是做虧本生意。所以說我覺得這一塊的話,我們积極穩妥和精準這方面一個拿捏程度,不是說不能做,是你一個企業的取捨,你的戰略。

高端車,我們認為純電動這一塊的話,原則上我定位是定位在緊湊型車以下,進行純電動的開發,緊湊型車以上是作為這種技術路線來走,所以一般我們針對高端品牌的話,我們目前還沒有這個規劃,在高端品牌上面來搭載純電動。

新浪汽車:第一個我想問一下,新能源補貼今年減少,還有我們的企業有沒有一些對應措施在戰略方面,另外一個就想問一下,今年混合動力的新車比較多,有的企業只是為了品牌形象,或者是增加銷量,請問您對這種現象有什麼看法?

任勇:第一個補貼的辦法,實際上我認為應該沒有太好的辦法,因為現在是,因為橫向比較我覺得比較不了多少,主要是縱向方面,就是你蛻脫完了之後,最後我們的新能源汽車最終是要跟隨着競爭的,跟傳統汽車的競爭,跟傳統汽車的競爭的話,成本價格實際上,我們現在分析是沒辦法達到現在傳統車的價格水平,所以說我認為,我剛才說的第一句話,2020年之前我們的市場是一個政策驅動性的市場,2020年以後是一個法規驅動的市場,就是說新能源車它的價格在逐年的下降,成本在下降,我們的產品技術也在不斷的成熟,成本在不斷的下降,傳統汽車我認為是一個往上的趨勢,那就是法規,包括後面的一個問題,積分,你要達到積分的話你必須要去買,你要買積分的話成本你就要增加,所以它就會剪刀差的問題,那個點在哪裡,這個是需要研究的。要高大家多高,就是應對補貼,所以這個到時候怎麼來做,可能還需要政府出台一些,不管是政策性驅動也好,法規驅動也好都是政府行為,還不是一個市場行為。

對於第二個問題,油耗積分的問題的話,實際上現在各個企業,我認為無外乎兩條路,因為它本身也是雙積分,第一個是燃油的積分,一個是新能源積分,它本身也是雙積分,它也是兩條路要走,就是我們的傳統汽車,傳統動力,它的能耗要下降,降低,同時也要發展新能源汽車,即使你的平均油耗達到了法規的要求,你也必須要掙新能源的積分。所以說傳統車的節能型技術要做,同時你的新能源汽車也要做。所以說這幾年的話,大家也很關注, 很重視我們的節能技術的一個發展和應用,同時包括我們的混合動力和plug in,實際上plug in的技術比純電動的技術要複雜的多,它研發的周期也要長的多,我是說三、五年能夠掌握的混合動力技術,長安從2001年開始涉足新能源行業以來,我們當時就是做的混合動力,應該說做了將近10的時間才基本上掌握,只是我們沒有走向市場而已,我們逸動的混合動力都開發完成了,因為當時沒有補貼,所以我們也沒有推向市場,這個技術掌握對我們後面發展純動力和混合動力是起到了很好的基礎。

網易:我想問一下任總,新能源汽車從2012年1月的月銷377輛到現在的月銷大概3萬多輛這個市場發展是非常快的,但是今年就是已經連續月大概都維持在三萬輛的水平,應該是受一些補貼政策的影響,有一些其他事件的應該環比增長比較小,然後同比增長的話,現在也就是在50%的水平,原來應該都是上百,可能翻好幾番的水平,我感覺新能源最近的發展確實是遇到了一些問題,我想問一下任總,這個問題大概是出在哪裡,長安對新能源汽車市場發展是怎麼看的,然後未來會有什麼樣的動作?

任勇:實際上你這個問題我前面已經回答了,這幾個月出現的問題,實際上大家也看的很明顯,就是一個補貼政策的出台,國家的補貼政策還沒有出來,各個地方因為騙補的因素導致他們現在都要等補貼政策出來之後才能出來,有很多地方,當然也有些地方已經出來了,但是比較少,政策不出來,必定會影響新能源汽車的銷量,因為它本身就是一個政策驅動性的,所以我剛才為什麼說我前面已經回答這個了,那就是這樣一個情況。

網易:還有一個問題是,現在的互聯網造車前一段時間很熱門,當然像和諧富騰,因為富士康的撤資,然後可能要中止,然後像樂視汽車、還有格力都遇到了很大的問題,我想問一下任總,關於互聯網造新能源汽車有什麼樣的看法。

任勇:因為我在有些媒體會上面也談到了,就是互聯網造車和新能源汽車+互聯網它實際上是相互的,而且我認為這兩個因素必須要聯動,也是一個趨勢。互聯網有它的優勢,就是它的思維方式,包括一個快速迭代的一些思維在新能源汽車上面我認為要借鑒和充分的應用。但是互聯網造車也好,不管是誰造車,它必定是一個車,它首先是一個車,是個車的話它就有一個,我們認為的一個主要是安全因素和可靠性的問題在裏面,我認為它跟我們平時的手機不大一樣,手機的話即使你在上市的時候開發還不是非常成熟的情況下,你用一段時間都可以來升級,在線升級,打一些補丁,而汽車不允許,也可以要迭代,但是不允許有大的BUG,特別是針對安全方面的BUG是不允許有的,所以汽車的生產製造和實驗評價,它的實驗體系它是非常非常嚴密的,而且互聯網造車的話,可能它可能會很快,今天它會做出一個概念,明年後年,可能一年時間最多兩年時間就出來,因為它的理論就是這個理論,而且我們汽車行業理論比較要達到30幾個月,我們流程才走的完,我們是有我們的流程,所以我們認為這個方面結合是必要,但是一定要有一個嚴謹的體系和流程。

中國品彙汽車:因為剛才任總提到新能源車電池方面的問題,我們知道長安在電池方面是用的自己研發的集成電池,所以我想問一下長安未來在新能源的核心零部件方面有什麼樣的規劃。

任勇:實際上也是我們戰略方面的一部分,針對電池的話,我們自己不生產電池,但是我們的電池總成的集成是我們自己做,我們自己設計,自己生產,電池單體和模組我們目前是採購外面專業電池公司的,這個就是我們認為,新能源汽車和傳統汽車來比的話,這個電池的應用裏面,它需要電池包的一個集成公司這樣一個橋頭堡來把電池和整車聯繫起來,我們原來也嘗試過不要這個橋頭堡,直接讓電池公司給我做成一個包,實際上有很多問題,後來我們做了這樣一個橋頭堡,做了這樣一個橋頭堡的話,當我們是拿到我們新能源公司在做,我們後面的戰略要跟在電池領域裏面要跟電池公司合作,我們的第一步子要跟他們進行戰略合作,不管是資源的共享也好,還是戰略產品的走向也好,一起走也好,這個都需要,因為我們認為新能源汽車我跟大家可以講這個概念,你的電池如果是沒有一個戰略,至少是一個戰略合作夥伴的話,電池的更換或者是供應商的更換實際上會給你帶來非常非常大的瓶頸,不管是你更換的可信性也好,還是更換的周期也好,所以這個必須要進行一個合作,另外一方面,這個後面我們就會進行一些資本層面的一些合作,不管是在電池領域還是在電機領域,這個方面合作來支撐承擔2020年之前24款新能源整車產品的一個發展,謝謝。本站聲明:網站內容來源於http://www.auto6s.com/,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

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

※如何讓商品強力曝光呢? 網頁設計公司幫您建置最吸引人的網站,提高曝光率!

※綠能、環保無空污,成為電動車最新代名詞,目前市場使用率逐漸普及化

※廣告預算用在刀口上,台北網頁設計公司幫您達到更多曝光效益

※教你寫出一流的銷售文案?

※別再煩惱如何寫文案,掌握八大原則!

原以為自己買不起車!結果同事5萬買了個車竟然還不錯…

長安奔奔指導價:4。49-6。09萬元(傳統燃油車型)長安奔奔,那可是目前微型車市場中最拿得出手的車型,而是也是銷量最棒的一款旗艦車型。話說回來,長安奔奔的來頭也不小,是由長安汽車和意大利設計團隊聯合設計打造,顏值外形在微型車級別中,絕對可以用“驚艷”形容,哪怕開在路上也不輸氣場。

5萬元也能買台小車?,Are you kidding me?花5萬元買到的既不是二手車,也不是事故車,而是完好無損的新車,關鍵還有雙氣囊和ABS,為了你的安全保駕護航。強勢圍觀!就來推薦幾款安全可靠的5萬元經濟小車。

寶駿310

指導價:3.68-4.98萬元

善於創造爆款車的寶駿,今年再度放大招劍指小型車市場。寶駿310的橫空出世,瞬間讓許多消費者的購車夢成功落地。定位於小型車的寶駿310,價格卻直逼微型車價位區間,再加上玲瓏個性的外觀內飾,上市不到兩月銷量破萬的成績太正常不過了。

配置方面,除了沒有安全氣囊、ABS等基礎性配置的最低配車型,不推薦之外。總體來看,寶駿310的配置還是處於同級別之上,中高配已經有雙氣囊、ABS、剎車輔助系統以及遙控鑰匙等,對於頂配售價才不到4.98萬元的寶駿310已經相當厚道了,1.2L自吸發動機搭配5速手動變速箱,動力充分滿足日常代步出行需求,百公里油耗5.3L,也有助於減輕年輕人的日常養車成本負擔。

鈴木奧拓

指導價:4.18-6.19萬

曾經的奧拓可是代表一代人的回憶,在當時極為稀缺的汽車市場注入一股強心劑,多少人因為奧拓,從此告別了風吹日晒、雨淋雷打的苦逼生活。不過,如今的銷量已是每況日下,在大城市幾乎很難覓到它的蹤跡,唯有在廣闊的農村地區繼續延續它強大的生命力。

便宜耐操、經濟實用是奧拓不變的宗旨,停留在2013款的奧拓外觀,在今天的審美眼光看來仍不過時。考慮到合理的配置情況,更推薦配有雙氣囊、ABS的手動舒適型,1.0L發動機加上5速手動變速箱,最大馬力71ps,動力性的要求就別這麼高了吧,畢竟才不到5萬元的裸車價。當然,如果預算還能再多一、兩萬的,你還可以選擇奧拓的自動擋車型。

長安奔奔

指導價:4.49-6.09萬元(傳統燃油車型)

長安奔奔,那可是目前微型車市場中最拿得出手的車型,而是也是銷量最棒的一款旗艦車型。話說回來,長安奔奔的來頭也不小,是由長安汽車和意大利設計團隊聯合設計打造,顏值外形在微型車級別中,絕對可以用“驚艷”形容,哪怕開在路上也不輸氣場。

除此之外,奔奔的內飾效果也是十分杠杠的,車內時尚氣息十足。整體配置較為齊全,唯獨最低配車型難以接受以外,其它配置車型均配有主/副安全氣囊,ABS防抱死系統等安全實用配置。1.4L的自吸發動機,在同級別中算得上是“大排量”了。4.79萬元的奔奔手動豪華型,對於手頭有限的年輕男女不失為一個很划算的選擇。

奇瑞QQ

指導價:3.79-5.09萬元

奇瑞QQ可謂是火遍了大江南北的一代神車,也順利了打響了奇瑞品牌的大名。雖然也不太記得QQ這台曾經的爆款車經歷了多少次的版本,但毋庸置疑,奇瑞QQ還是那個短小精悍、招人喜歡的小傢伙,可愛靈活的外觀頗受年輕一代的歡迎,時至今日,奇瑞QQ仍保持月銷700輛左右的水平。

作為年輕人的第一台車的奇瑞QQ,主打的正是空間和配置,180cm的體驗者坐進後排座椅,居然還有1拳有餘的頭部和腿部空間,在微型車級別中表現出色。在安全配置上,指導價3.79萬和3.99萬的兩款最低配車型是沒有配備任何的安全氣囊或ABS,只有4.29萬元的1.0L手動時尚版,才能湊合著開。

總結:很多預算不充裕的年輕人,往往退而求其次,一味地追求價格低廉的二手車或者沒有氣囊ABS的新車,在看來都是不可取的。那麼,以上的這幾台小車雖談不上品質上乘,但無論其價格和安全質量,都足夠令人心動。作為剛性需求,資金有限的年輕人的第一台轎車,是一個非常合適的選擇。本站聲明:網站內容來源於http://www.auto6s.com/,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

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

※如何讓商品強力曝光呢? 網頁設計公司幫您建置最吸引人的網站,提高曝光率!

※綠能、環保無空污,成為電動車最新代名詞,目前市場使用率逐漸普及化

※廣告預算用在刀口上,台北網頁設計公司幫您達到更多曝光效益

※教你寫出一流的銷售文案?

※別再煩惱如何寫文案,掌握八大原則!

單獨囚禁在水池2年 日本311倖存海豚抑鬱離世

摘錄自2020年4月15日鏡週刊報導

國際動保組織「海豚計畫」(Dolphin project)報導指出,日本寬吻海豚「Honey」於2005年在日本太地町被捕獲,自此生活在千葉線犬吠埼海洋公園僅80平方公尺大的水池中,與另一隻海豚、46隻企鵝及數百種魚類一起生活。

311大地震後面臨觀光衰退和建築物老舊,2008年11月犬吠埼海洋公園被爆出營運困難負債,正尋找買家,去年初終於轉賣,但如今整個園區卻呈現廢棄狀態,也沒有遊客造訪,僅安排員工前來餵食。另一隻海豚於2017年死亡,「Honey」自此單獨每天在這廢棄的水池中游來游去,對習性群居的海豚而言,這無疑是極大的折磨。

動保組織「海豚計畫」曾試圖聯繫買下海豚「Honey」,盼為牠找到合適的居所安享晚年,但為時已晚,3月初「Honey」狀況已經不太好,3月29日牠因阻塞性腸炎,死在待了泰半生的水池。

國際新聞
日本
核災
展示動物
動物福利

本站聲明:網站內容來源環境資訊中心https://e-info.org.tw/,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

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

※如何讓商品強力曝光呢? 網頁設計公司幫您建置最吸引人的網站,提高曝光率!

※綠能、環保無空污,成為電動車最新代名詞,目前市場使用率逐漸普及化

※廣告預算用在刀口上,台北網頁設計公司幫您達到更多曝光效益

※教你寫出一流的銷售文案?

※別再煩惱如何寫文案,掌握八大原則!

微服務海量日誌監控平台

前面幾章蜻蜓點水的介紹了elasticsearch、apm相關的內容。本片主要介紹怎麼使用ELK Stack幫助我們打造一個支撐起日產TB級的日誌監控系統

背景

在企業級的微服務環境中,跑着成百上千個服務都算是比較小的規模了。在生產環境上,日誌扮演着很重要的角色,排查異常需要日誌,性能優化需要日誌,業務排查需要業務等等。然而在生產上跑着成百上千個服務,每個服務都只會簡單的本地化存儲,當需要日誌協助排查問題時,很難找到日誌所在的節點。也很難挖掘業務日誌的數據價值。那麼將日誌統一輸出到一個地方集中管理,然後將日誌處理化,把結果輸出成運維、研發可用的數據是解決日誌管理、協助運維的可行方案,也是企業迫切解決日誌的需求。

我們的解決方案

通過上面的需求我們推出了日誌監控系統。

  • 日誌統一收集、過濾清洗。
  • 生成可視化界面、監控,告警,日誌搜索。

功能流程概覽

  • 在每個服務節點上埋點,實時採集相關日誌。
  • 統一日誌收集服務、過濾、清洗日誌後生成可視化界面、告警功能。

我們的架構

  1. 日誌文件採集端我們使用filebeat,運維通過我們的後台管理界面化配置,每個機器對應一個filebeat,每個filebeat日誌對應的topic可以是一對一、多對一,根據日常的日誌量配置不同的策略。除了採集業務服務日誌外,我們還收集了mysql的慢查詢日誌和錯誤日誌,還有別的第三方服務日誌,如:nginx等。最後結合我們的自動化發布平台,自動發布並啟動每一個filebeat進程。
  2. 調用棧、鏈路、進程監控指標我們使用的代理方式:Elastic APM,這樣對於業務側的程序無需任何改動。對於已經在運營中的業務系統來說,為了加入監控而需要改動代碼,那是不可取的,也是無法接受的。Elastic APM可以幫我們收集http接口的調用鏈路、內部方法調用棧、使用的sql、進程的cpu、內存使用指標等。可能有人會有疑問,用了Elastic APM,其它日誌基本都可以不用採集了。還要用filebeat幹嘛?是的,Elastic APM採集的信息確實能幫我們定位80%以上的問題,但是它不是所有的語言都支持的比如:C。其二、它無法幫你採集你想要的非error日誌和所謂的關鍵日誌,比如:某個接口調用時出了錯,你想看出錯時間點的前後日誌;還有打印業務相關方便做分析的日誌。其三、自定義的業務異常,該異常屬於非系統異常,屬於業務範疇,APM會把這類異常當成系統異常上報,如果你後面對系統異常做告警,那這些異常將會幹擾告警的準確度,你也不能去過濾業務異常,因為自定義的業務異常種類也不少。
  3. 同時我們對agent進行了二開。採集更詳細的gc、堆棧、內存、線程信息。
  4. 服務器採集我們採用普羅米修斯。
  5. 由於我們是saas服務化,服務N多,很多的服務日誌做不到統一規範化,這也跟歷史遺留問題有關,一個與業務系統無關的系統去間接或直接地去對接已有的業務系統,為了適配自己而讓其更改代碼,那是推不動的。牛逼的設計是讓自己去兼容別人,把對方當成攻擊自己的對象。很多日誌是沒有意義的,比如:開發過程中為了方便排查跟蹤問題,在if else里打印只是有標誌性的日誌,代表是走了if代碼塊還是else代碼塊。甚至有些服務還打印着debug級別的日誌。在成本、資源的有限條件下,所有所有的日誌是不現實的,即使資源允許,一年下來將是一比很大的開銷。所以我們採用了過濾、清洗、動態調整日誌優先級採集等方案。首先把日誌全量採集到kafka集群中,設定一個很短的有效期。我們目前設置的是一個小時,一個小時的數據量,我們的資源暫時還能接受。
  6. Log Streams是我們的日誌過濾、清洗的流處理服務。為什麼還要ETL過濾器呢?因為我們的日誌服務資源有限,但不對啊,原來的日誌分散在各各服務的本地存儲介質上也是需要資源的哈。現在我們也只是彙集而已哈,收集上來后,原來在各服務上的資源就可以釋放掉日誌佔用的部分資源了呀。沒錯,這樣算確實是把原來在各服務上的資源化分到了日誌服務資源上來而已,並沒有增加資源。不過這隻是理論上的,在線上的服務,資源擴大容易,收縮就沒那麼容易了,實施起來極其困難。所以短時間內是不可能在各服務上使用的日誌資源化分到日誌服務上來的。這樣的話,日誌服務的資源就是當前所有服務日誌使用資源的量。隨存儲的時間越長,資源消耗越大。如果解決一個非業務或非解決不可的問題,在短時間內需要投入的成本大於解決當前問題所帶來收益的話,我想,在資金有限的情況下,沒有哪個領導、公司願意採納的方案。所以從成本上考慮,我們在Log Streams服務引入了過濾器,過濾沒有價值的日誌數據,從而減少了日誌服務使用的資源成本。技術我們採用Kafka Streams作為ETL流處理。通過界面化配置實現動態過濾清洗的規則:
  • 界面化配置日誌採集。默認error級別的日誌全量採集
  • 以錯誤時間點為中心,在流處理中開窗,輻射上下可配的N時間點採集非error級別日誌,默認只採info級別
  • 每個服務可配100個關鍵日誌,默認關鍵日誌全量採集
  • 在慢sql的基礎上,按業務分類配置不同的耗時再次過濾
  • 按業務需求實時統計業務sql,比如:高峰期階段,統計一小時內同類業務sql的查詢頻率。可為dba提供優化數據庫的依據,如按查詢的sql創建索引
  • 高峰時段按業務類型的權重指標、日誌等級指標、每個服務在一個時段內日誌最大限制量指標、時間段指標等動態清洗過濾日誌 
  • 根據不同的時間段動態收縮時間窗口
  • 日誌索引生成規則:按服務生成的日誌文件規則生成對應的index,比如:某個服務日誌分為:debug、info、error、xx_keyword,那麼生成的索引也是debug、info、error、xx_keyword加日期作後綴。這樣做的目的是為研發以原習慣性地去使用日誌

    7. 可視化界面我們主要使用grafana,它支持的眾多數據源中,其中就有普羅米修斯和elasticsearch,與普羅米修斯可謂是無縫對接。而kibana我們主要用於apm的可視分析

日誌可視化

【版權聲明】

本文版權歸作者(深圳伊人網網絡有限公司)和博客園共有,歡迎轉載,但未經作者同意必須在文章頁面給出原文鏈接,否則保留追究法律責任的權利。如您有任何商業合作或者授權方面的協商,請給我留言:siqing0822@163.com

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

【其他文章推薦】

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

※如何讓商品強力曝光呢? 網頁設計公司幫您建置最吸引人的網站,提高曝光率!

※綠能、環保無空污,成為電動車最新代名詞,目前市場使用率逐漸普及化

※廣告預算用在刀口上,台北網頁設計公司幫您達到更多曝光效益

※教你寫出一流的銷售文案?

※別再煩惱如何寫文案,掌握八大原則!

科學家在北義空污粒子上檢出新冠病毒 傳播距離、病毒是否存活仍待釐清

環境資訊中心綜合外電;姜唯 編譯;林大利 審校

本站聲明:網站內容來源環境資訊中心https://e-info.org.tw/,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

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

※如何讓商品強力曝光呢? 網頁設計公司幫您建置最吸引人的網站,提高曝光率!

※綠能、環保無空污,成為電動車最新代名詞,目前市場使用率逐漸普及化

※廣告預算用在刀口上,台北網頁設計公司幫您達到更多曝光效益

※教你寫出一流的銷售文案?

※別再煩惱如何寫文案,掌握八大原則!

讀懂操作系統之緩存原理(cache)(三)

前言

本節內容計劃是講解TLB與高速緩存的關係,但是在涉及高速緩的前提是我們必須要了解操作系統緩存原理,所以提前先詳細了解下緩存原理,我們依然是採取循序漸進的方式來解答緩存原理,若有敘述不當之處,還請批評指正。

緩存原理

高速緩存被劃分為多個塊,其大小可能不同,緩存中的塊數通常為2的冪。如下為一個具有八個塊的高速緩存,每個塊包含一個字節。

通過本節對緩存原理的學習我們能夠學習到四點:

【1】當我們將數據塊從主存儲器複製到緩存,我們到底應該放在哪裡?

【2】如何判斷一個字是否已經在緩存中,或者它是否必須首先從主存儲器中獲取?

【3】較小的緩存最終會填滿, 需要至從主存加載新塊,我們必須替換緩存中現有的哪個塊?

【4】存儲系統如何處理寫操作?

數據放在緩存哪裡?

緩存最簡單的數據結構是直接映射: 其中每個存儲器地址僅僅對應到緩存中的一個位置。例如如下,16個字節的主存和4個字節的緩存(每個塊一個字節),內存地址為0、4、8、12分別映射到緩存中為0的塊,而地址1、5、9、13被映射到塊1

等等,我們是不是講解的太快了,上述地址怎麼就劃分到比如塊0或塊1了呢?要找出緩存所在塊採取取模法:(塊地址)mod (緩存中的塊數),如果緩存包含2k塊,則內存地址i處的數據將進入緩存塊索引為i mod 2k。還是不懂?我們來舉個例子,如下緩存有4個塊,那麼地址為14將映射到塊2即(14 mod 4 = 2)。

為便於大家理解如上為10進製表示內存地址,將內存地址映射到緩存塊中實際等效的方式是將內存地址中的最低有效k位(二進制)進行映射。正如下面我們所看到的,內存地址14(1110,二進制)將最低有效位10作為塊中的索引

怎樣找到緩存中數據?

到目前為止我們知道了將地址利用直接映射的結構映射到緩存中,那麼我們找到數據是否在緩存中呢?如果要讀取內存地址i,則可以使用mod技巧來確定哪個緩存塊將包含i,如上所述,若其他地址也可能映射到相同的緩存塊,那麼我們如何區分它們呢?例如如下內存地址2、6、10、14都在緩存塊2中

為了解決這個問題,我們需要向高速緩存中添加標記(tag),通過內存地址的高位來提供標記位,以使我們能夠區分映射到同一高速緩存塊的不同存儲位置。例如如下。內存地址6即(0110,二進制),將低位10作為索引(index),高位01作為標記(tag)。

我們通過將高速緩存塊標記(tag)與塊索引(index)組合起來,可以準確地知道主存儲器的哪些地址存儲在高速緩存中。

當程序加載到內存中時,緩存為空,不包含有效數據,我們應該通過為每個緩存塊添加一個有效位來解決這個問題,系統初始化時,所有有效位均設置為0,當數據加載到特定的緩存塊中時,相應的有效位設置為1。

當CPU嘗試從內存中讀取數據時,該地址將被發送到緩存控制器,地址的最低k位將在緩存中索引一個塊,如果該塊有效且標籤與m位地址的高(m-k)位匹配,則該數據將被發送到CPU,如下為一個32位內存地址和210字節高速緩存的圖。

到這裏我們會發現一個問題,將每一個字節對應一字節緩存塊並沒有很好的利用空間局部性,要是訪問一個地址后將訪問附近的地址,我們又該怎麼辦?我們要做的是將緩存塊的大小要大於1個字節。如下,我們使用兩個字節的塊,因此我們可以用兩個來加載緩存一次讀取一個字節,如果我們從內存地址12讀取數據,則地址中的數據12和13都將被複制到緩存塊2。

現在,我們又該如何確定數據應放在緩存中的位置?現在演變成塊地址,如果緩存塊大小為2n字節,我們也可以在概念上將主內存也劃分成2n字節塊,要確定字節地址i的塊地址,可以進行整數除法(i / 2n),如下示例中有2個字節的緩存塊,因此我們可以將16個字節的主存儲器視為8塊主存儲器,例如,存儲器地址12和13都對應於塊地址6,因為12 / 2 = 6和13 / 2 = 6。 

現在我們知道了塊地址,就可以像上述一樣將其映射到緩存:找到塊地址除以緩存塊數后的餘數。在如下示例中,內存塊6屬於緩存塊2,因為6 mod 4 =2,這對應於將來自存儲器字節地址12和13的數據都放入高速緩存塊2中。

當我們訪問內存中的一個字節數據時,我們會將其整個塊複製到緩存中以達到充分利用空間局部性。在我們的示例中,如果程序從字節地址12讀取,我們會將所有存儲塊6(地址12和13)都加載到緩存塊2中(注意:字節地址13對應於相同的存儲塊地址)因此,對地址13的讀取也會導致將存儲塊6(地址12和13)加載到高速緩存塊2中。為了簡化起見,存儲塊的字節i始終存儲在相應高速緩存塊的字節i中。

假設我們有一個包含2k塊的緩存,每個塊包含2n個字節,我們可以通過查看其在主內存中的地址來確定該緩存中一個字節的數據位置,地址的k位將選擇2k個高速緩存塊之一,最低的n位現在是一個塊偏移量,它決定了高速緩存塊中的2n個字節中的哪個將存儲數據。

我們來舉個例子加深理解,如下示例使用22塊高速緩存,每個塊佔21字節,因此,存儲器地址13(1101)將存儲在高速緩存塊2的字節1中。

到這裏為止,我們才算分析清楚了緩存中有效位、標記位、索引、偏移它們的由來以及實際作用。同時對於緩存採用的直接映射(direct mapped)結構:索引和偏移量可以使用位運算符或簡單的算術運算,因為每個內存地址都恰好屬於一個塊。實際上我們可以將一個塊放置到緩存中的任何一個位置,這種機制稱為全相聯(fully associative)。全相聯的高速緩存允許將數據存儲在任何高速緩存塊中,而不是將每個內存地址強制映射到一個特定的塊中,從內存中獲取數據時,可以將其放置在高速緩存的任何未使用塊中。 這樣,我們將永遠不會在映射到單個緩存塊的兩個或多個內存地址之間發生衝突,在上述示例中,我們可能將內存地址2放在緩存塊2中,並將地址6放在塊3中。然後對2和6的後續重複訪問將全部命中而不是未命中,如果所有塊都已被使用,則使用LRU算法進行替換。但是在全相聯緩存中要查找一個指定的塊,由於該塊存放在緩存中的任何位置,因此需要檢索緩存中的所有項,為了是檢索更加有效,它是由一個與緩存中每個項都相關的比較器并行完成的,這些比較器加大了硬件開銷,因而,全相聯只適合塊數較少的緩存。介於直接映射和全相聯之間的設計是組相聯(set associative)。在組相聯緩存中,每個塊可被放置的位置數固定,每個塊有n個位置可放的緩存被稱作n路組相聯,一個n路組相聯緩存由很多組組成,每個組有n個塊。通過上述對直接映射的講解,最終我們得出指定內存地址所在存儲的塊號為:(塊號) mod (緩存中的塊數),而組相聯對於存儲塊號是:(塊號) mod (緩存中的組數)。如下為8塊高速緩存的組織

組相聯實際上就是將塊進行分組,比如如上第一個圖則是直接映射(我們大可將其看做是每一個塊就是一個組,所以是1路8組相聯),而第二張圖則是每2個塊作為一組,所以是2路4組相聯,同理第三張圖是4路2組相聯。換句話說,若每組有2n塊,那麼就是2n路相聯。通過對組相聯的講解,我們再敘內存地址在組相聯緩存中的位置。如果我們有2s組並且每塊有2n字節,那麼內存地址映射在緩存中的位置則是如下這般

現在我們運算則是計算緩存中的組索引而非再是塊,上述Block offset(在組中塊偏移)= 內存地址 mod 2n,塊地址 = 內存地址 / 2n,set index(組索引) = 塊地址 mod 2s。我們還是通過圖解來進行敘述,假設有一個8塊的高速緩存,然後每個塊是16個字節,那麼內存地址為6195的數據存儲在緩存哪裡呢?首先我們將6195轉換為二進制  = 110000 011 0011,因每個塊是16字節即24,所以塊偏移量為4位即0011,若採用1路8組相聯(直接映射)那麼其組索引就是(6195 mod 8) = 3,取6195轉換而二進制去除偏移量4位,所以為011,同理(根據上述給定計算公式)對於2路4組相聯其組索引為(11),4路2組相聯其組索引為(1),如下:

到這裏我們知道將數據進行緩存我們可以採取直接映射、組相聯、全相聯的機制,通過增加相聯度通常可以降低緩存缺失率,但是增加相聯度也就增加了每組中的塊數,也就是并行查找時同時比較的次數,相聯度每增加兩倍就會使得每組中的塊數加倍而使得組數減半,所以增大了訪問時間的開銷。如何找到一個塊,當然也就依賴於所使用的將塊放置的機制(直接映射、組相聯、全相聯),相較於全相聯而言,它使用複雜的替換策略而降低缺失率且很容易被索引,而不需要額外的硬件,也不需要進行查找。因此虛擬存儲系統通常使用全相聯映射,而組相聯映射通常應用於緩存和TLB。

緩存缺失和寫操作

緩存缺失被分為以下三類(3C模型,three Cs model),因其三類名稱以字母c開頭而得名

強制缺失(compulsory miss):對從沒有在緩存中出現的塊第一次進行訪問引起的缺失,也稱為冷啟動缺失(cold-start miss)

容量缺失:(capacity miss):由於緩存容納不了一個程序執行所需要的所有塊而引起的緩存缺失,當某些塊被替換出去,隨後再被調入時,將發生容量缺失

衝突缺失(conflict miss):在組相聯或者直接映射的緩存中,多個競爭同一個組時而引起的緩存缺失。衝突缺失在直接映射或組相聯緩存中存在,而在同樣大小的全相聯緩存中不存在,這種緩存缺失也稱為碰撞缺失(collision miss)

改變緩存設計的某一方面就能直接影響這些缺失的原因。衝突缺失是因為爭用同一個緩存塊而引起的,因此提高相聯度可以減少衝突缺失,然後提高相聯度會延長訪問時間,導致整個性能的降低,容量缺失可以簡單地通過增大緩存容量來減少,當然緩存容量增大的同時必然導致訪問時間的增加,也將導致整體性能的降低。

在相聯的緩存中發生缺失時,我們必須決定替換哪一塊,如若是全相聯,那麼所有的塊都是被替換的候選者,如若是組相聯,我們必須在某一組的塊中進行選擇,當然,直接映射的緩存替換很簡單,因為只有一個可以替換的候選者。因此在全相聯或組相聯緩存中 ,有兩種主要的替換策略

隨機法:隨機選擇候選塊,可能使用一些硬件來協助實現,例如TLB缺失、MIPS支持隨機替換

LRU(最近最少使用算法):被替換的塊是最久沒有被使用過的塊 (在大多虛擬存儲器中,對於LRU都是通過提供引用位來近似實現(比如TLB))

指令緩存缺失(數據缺失也類似如此)處理步驟如下:

【1】將程序計數器(PC)的原始值送到寄存器

【2】通知主存執行一次讀操作,並等待主存訪問完成

【3】寫緩存項,將從主存取回的數據寫入緩存中存放數據的部分,並將高位(從ALU中得到)寫入標記域,設置有效位

【4】重啟指令執行第一步,重新取指,這次該指令發生在緩存中

數據訪問是對緩存的控制基本相同:發生缺失時,處理器發生阻塞,直到從存儲器中取回數據后才響應。在執行寫操作時,如果有一個存儲指令,我們只將數據寫入緩存而不改變主存中的內容,那麼在寫入緩存后將導致緩存和主存被認為不一致,保持主存和緩存一致性最簡單的方法是將數據同時寫入主存和緩存中,這種方法稱為【寫直達】法。但是這種方法無法提供良好的性能,因為每次寫操作都要把數據寫入主存中,這些寫操作將花費大量的時間,可能至少花費100個處理時鐘周期,並且大大降低了機器速度,解決這個問題的方案之一是採用【寫緩衝:一個保存等待寫入主存數據的緩衝隊列】,當一個數據在等待寫入緩存時,先將其寫入緩衝中,當數據寫入緩存和緩衝后,處理器可以繼續執行,當寫主存操作完成后,寫緩衝里的數據項也得到有效釋放。如果寫緩衝已經滿了,那麼當處理器執行到一個寫操作時就必須停下來直到寫緩衝中有一個空位置,當然,如果存儲器完成寫操作的速度比處理器產生寫操作的速度慢,那麼再多的緩衝器也無用,因為產生寫操作比存儲系統接收它們更快。

 

除了寫直達方法外,另外一種可選擇的方法是【寫回】,在寫回機制中,當發生寫操作時,新值僅僅被寫入到緩存塊中,只有當修改過的塊被替換時才需要寫到磁盤上,寫回機制可提高系統性能,尤其是當處理器寫操作的速度和主存處理寫操作速度一樣快甚至更快時,但是,寫回機制的實現比寫直達要複雜得多。大部分寫回機制的緩衝也是使用寫緩衝,當在發生缺失替換一個被修改的塊時,寫緩衝可以起到降低缺失代價的作用。在這種情況下,被修改的數據塊移入與緩存相聯的寫回緩衝器,同時從主存中讀出所需要的數據塊。隨後,寫回緩衝器再將數據寫入主存,如果下一次缺失沒有立刻發生,當臟數據塊必須被替換時,這種方法可以減少一半的缺失代價。

總結

一個緩存塊可以放在何處:一個位置(直接映射),一些位置(組相聯),任何位置(全相聯)。

如何找到一個塊:索引(直接映射的緩存中),有限的檢索(組相聯的緩存中),全部檢索(全相聯的緩存中)、專用查找頁表。

緩存缺失時替換哪一塊:隨機選取、LRU

寫操作如何處理:寫直達或寫回策略

本文我們非常詳細的講解了緩存的基本原理,當然對於如何處理緩存一致性並未涉及(大多採用監聽協議),希望通過我對緩存原理的理解能給閱讀的您能有力所能及的幫助,謝謝。 

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

【其他文章推薦】

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

※如何讓商品強力曝光呢? 網頁設計公司幫您建置最吸引人的網站,提高曝光率!

※綠能、環保無空污,成為電動車最新代名詞,目前市場使用率逐漸普及化

※廣告預算用在刀口上,台北網頁設計公司幫您達到更多曝光效益

※教你寫出一流的銷售文案?

※別再煩惱如何寫文案,掌握八大原則!