新聞中心
垃圾回收(Garbage Collection,GC)是一種自動內(nèi)存管理技術(shù),可自動檢測和清除程序不再使用的內(nèi)存空間。在程序運行時,隨著內(nèi)存被占用和釋放,系統(tǒng)將不得不處理由程序留下的內(nèi)存碎片。如果不及時進(jìn)行垃圾回收,程序?qū)鲥e或運行緩慢。

成都創(chuàng)新互聯(lián)專業(yè)為企業(yè)提供定遠(yuǎn)網(wǎng)站建設(shè)、定遠(yuǎn)做網(wǎng)站、定遠(yuǎn)網(wǎng)站設(shè)計、定遠(yuǎn)網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計與制作、定遠(yuǎn)企業(yè)網(wǎng)站模板建站服務(wù),10余年定遠(yuǎn)做網(wǎng)站經(jīng)驗,不只是建網(wǎng)站,更提供有價值的思路和整體網(wǎng)絡(luò)服務(wù)。
Linux系統(tǒng)使用GC技術(shù)以簡化內(nèi)存管理和提高程序性能。在本文中,我們將介紹Linux的垃圾回收機(jī)制——GC。
1. GC簡介
GC是垃圾回收的縮寫,是一種自動內(nèi)存管理技術(shù)。GC的基本思想是在程序執(zhí)行時,自動檢測和釋放程序運行中不再使用的內(nèi)存空間。GC技術(shù)的使用能夠簡化內(nèi)存管理,幫助程序員避免一些內(nèi)存管理的技術(shù)難題。
GC技術(shù)可以提高程序性能。因為GC技術(shù)能夠在程序執(zhí)行時及時釋放不使用的內(nèi)存空間。這就能夠避免使用過多的內(nèi)存,從而提高了程序的性能。
2. Linux的垃圾回收機(jī)制
Linux使用垃圾回收機(jī)制——GC來管理程序運行時的內(nèi)存空間。GC的基本思想是:在程序執(zhí)行時,自動檢測和釋放程序運行中不再使用的內(nèi)存空間。
2.1 分代方式
Linux的垃圾回收機(jī)制中,使用的是分代方式。每個對象都會被分為不同的代,代的概念類似于對象的“壽命”。當(dāng)一個對象的壽命到達(dá)一定階段時,該對象就會被分配到一個較長的代中。
當(dāng)收集垃圾時,GC將先集中處理代數(shù)較小的對象,以便在較少的時間內(nèi)釋放盡可能多的內(nèi)存空間。當(dāng)GC將所有代的可用內(nèi)存空間都釋放了,它就會對代數(shù)較大的對象組進(jìn)行壓縮,釋放更多的內(nèi)存。這種方式提高了GC的效率,從而使程序運行更快。
2.2 Stop-the-world 暫停
Linux的垃圾回收機(jī)制采用了“Stop-the-world”暫停機(jī)制。這種機(jī)制的基本思想是在進(jìn)行垃圾回收時,GC需要暫停程序的運行。在此期間,GC將檢查所有內(nèi)存空間,并釋放不再使用的內(nèi)存空間。停止運行的時間會隨著代數(shù)增長而變長。
3.
Linux的垃圾回收機(jī)制——GC,是一種可以自動檢測和釋放程序運行中不再使用的內(nèi)存空間的自動內(nèi)存管理技術(shù)。Linux的GC機(jī)制能夠使用分代方式來管理對象的內(nèi)存空間,并采用“Stop-the-world”暫停機(jī)制,提高了GC的效率,從而使程序運行更快。
Linux的垃圾回收機(jī)制——GC,是一種非常有用的自動內(nèi)存管理技術(shù),可以簡化內(nèi)存管理,提高代碼性能,減少程序運行出錯的可能性。在今后的程序開發(fā)中,使用GC技術(shù)將會是一種趨勢。
成都網(wǎng)站建設(shè)公司-創(chuàng)新互聯(lián),建站經(jīng)驗豐富以策略為先導(dǎo)10多年以來專注數(shù)字化網(wǎng)站建設(shè),提供企業(yè)網(wǎng)站建設(shè),高端網(wǎng)站設(shè)計,響應(yīng)式網(wǎng)站制作,設(shè)計師量身打造品牌風(fēng)格,熱線:028-86922220linux小技巧
其實你說的沒錯,linux需要細(xì)心,可是你如閉棚納果是去看別人的,那永遠(yuǎn)是別人轎沒注意的到問題,而不是你的。還不如自己去做,出了問題去百度或者問人。和冊這樣比問一些技巧有用多了。
我有vim的,都是自己平時用的時候積累的,現(xiàn)在之一次放出。
1 2 啟動Vim時的選項 vim -c cmd file: 在打開文件前,先執(zhí)行指定的命令;vim -r file: 恢復(fù)上次異常退出的文件;vim -R file: 以只讀的方式打開文件;vim -y num file: 將編輯窗口的大小設(shè)為num行;vim + file: 從文件的末尾開始;vim +num file: 從第num行開始;
Contents 2 3 光標(biāo)的移動 h: 左移一個字符;l: 右移一個字符;j: 下移一個字符;k: 上移一個字符;w: 前移一個單詞,光標(biāo)停在下一個單詞開頭;e: 前移一個單詞,光標(biāo)停在下一個單詞末尾;b: 后移一個單詞,光標(biāo)停在上一個單詞開頭;ge: 后移一個單詞,光標(biāo)停在上一個單詞末尾;fc: 把光標(biāo)移到同一行的下一個c字符處上面的操作都可以配合n使用,比如在正常模式(下面會講到)下輸入3h,則光標(biāo)向左移動3個字符。
0或^:移動到行首。$: 移動到行尾。gg: 到文件頭部。G: 到文件尾部。nG: 到文件第n行。:n 移動到第n行。:$ 移動到最后一行。n|: 把光標(biāo)移到遞n列上。+或Enter:把光標(biāo)移至下一行態(tài)悔之一個非空白字符。-: 把光標(biāo)移至上一行之一個非空白字符。H: 把光標(biāo)移到屏幕最頂端一行。L: 把光標(biāo)移到屏幕更底端一行。ctrl+f: 下翻一屏。ctrl+b: 上翻一屏。ctrl+d: 下翻半屏。ctrl+u: 上翻半屏。Contents 3 4 Vim的幾種模式 正常模式:可以使用快捷鍵命令,或按:輸入命令行。插入模式:可以輸入文本,在正常模式下,按i、a、o等都可以進(jìn)入插入模式。可視模式:正常模式下按v可以進(jìn)入可視模式,在可視模式下,移動光標(biāo)可以選擇文本。塊選擇模式:正常模式下按ctrl+v進(jìn)入。替換模式:正常模式下,按R進(jìn)入。Contents 4 5 插入 i: 在光標(biāo)前插入;I: 在當(dāng)前行最前插入;a: 在光標(biāo)后插入;A: 在當(dāng)前行最后插入;o: 在下面新建一行插入;O: 在上面新建一行插入;:r filename 在當(dāng)前位置插入另一個文件的內(nèi)容。:r !date 在光標(biāo)處插入當(dāng)前日期與時間。同理,:r!command可以將其它shell命令的輸出插入當(dāng)前文檔。Contents 5 6 改寫 cw: 改寫光標(biāo)后1(n)個詞。cl: 改寫光標(biāo)后n個字母。ch: 改帆猜正寫光標(biāo)前n個字母。cc: 修改當(dāng)前行。s: 以輸入的文本替代光標(biāo)之后1(n)個字符,相當(dāng)于cl。S: 刪除指定數(shù)目的行,并以所輸入文本代替之。注意,類似cnw,dnw,ynw的形式同樣可以寫為ncw,ndw,nyw。Contents 6 7 替換 r: 替換光標(biāo)處的字符,同樣支持漢字。R: 進(jìn)入替換模式,按esc回到正常模式。Contents 7 8 撤消與重做 u: 取消一(n)個改動。ctrl + r: 重做最后的改動。U: 取消當(dāng)前行中所有的改動。Contents 8 9 剪切和復(fù)制、粘貼 x: 剪切光標(biāo)右邊n個字符,相當(dāng)于dl。X: 剪切光標(biāo)左邊n個字符,相當(dāng)于dh。y: 復(fù)制在可視模式下選中的文本。yy or Y: 復(fù)制整行文本。 yy 是復(fù)制一行文本的命令,則5yy 表示復(fù)制兆中從前行開始的5行yw: 復(fù)制一(n)個詞。yl: 復(fù)制光標(biāo)右邊1(n)個字符。yh: 復(fù)制光標(biāo)左邊1(n)個字符。y$: 從光標(biāo)當(dāng)前位置復(fù)制到行尾。y0: 從光標(biāo)當(dāng)前位置復(fù)制到行首。:m,ny 復(fù)制m行到n行的內(nèi)容。y1G或ygg:復(fù)制光標(biāo)以上的所有行。yG: 復(fù)制光標(biāo)以下的所有行。d: 刪除(剪切)在可視模式下選中的文本。d$ or D: 刪除(剪切)當(dāng)前位置到行尾的內(nèi)容。dw: 刪除(剪切)1(n)個單詞dl: 刪除(剪切)光標(biāo)右邊1(n)個字符。dh: 刪除(剪切)光標(biāo)左邊1(n)個字符。d0: 刪除(剪切)當(dāng)前位置到行首的內(nèi)容 dd: 刪除(剪切)1(n)行。:m,nd 剪切m行到n行的內(nèi)容。d1G或dgg:剪切光標(biāo)以上的所有行。dG: 剪切光標(biāo)以下的所有行。p: 在光標(biāo)之后粘貼。P: 在光標(biāo)之前粘貼。Contents 9 10 查找和替換 /something: 在后面的文本中查找something。?something: 在前面的文本中查找something。n: 向后查找下一個。N: 向前查找下一個。:s/old/new: 用new替換當(dāng)前行之一個old。:s/old/new/g: 用new替換當(dāng)前行所有的old。:n1,n2s/old/new/g: 用new替換文件n1行到n2行所有的old。:%s/old/new/g: 用new替換文件中所有的old。:%s/^/xxx/g: 在每一行的行首插入xxx,^表示行首。:%s/$/xxx/g: 在每一行的行尾插入xxx,^表示行尾。所有替換命令末尾加上c,每個替換都將需要用戶確認(rèn)。如:%s/old/new/gc%: 找到對應(yīng)的(;光標(biāo)所在行會縮進(jìn)。如果先按了n,再按兩下>;,光標(biāo)以下的n行會縮進(jìn)。對應(yīng)的,按兩下ctrl+w H(L,K,J): 將當(dāng)前窗口移動到最左(右、上、下)面。正因為vim強(qiáng)大的分屏功能,我們可以把vim打造成功能強(qiáng)大的IDE。Contents一次編輯多個文件 我們可以一次打開多個文件,如vi a.txt b.txt c.txt 使用:next(:n)編輯下一個文件。使用:previous編輯上一個文件。使用:wnext,保存當(dāng)前文件,并編輯下一個文件。使用:wprevious,保存當(dāng)前文件,并編輯上一個文件。使用:args顯示文件列表。Contents文件的編碼 :e ++enc=utf8 filename, 讓vim用utf-8的編碼打開這個文件。:w ++enc=gbk,不管當(dāng)前文件什么編碼,把它轉(zhuǎn)存成gbk編碼。:set fenc或:setfileencoding,查看當(dāng)前文件的編碼。在vimrc中添加setfileencoding=utf-8,cp936,ucs-bom,vim會根據(jù)要打開的文件選擇合適的編碼。注意:編碼之間不要留空格。cp936對應(yīng)于gbk編碼。ucs-bom對應(yīng)于windows下的文件格式。讓vim正確處理文件格式和文件編碼,有賴于~/.vimrc的正確配置。Contents執(zhí)行命令 :! cmd 執(zhí)行外部命令。:!! 執(zhí)行上一次的外部命令。@: 重復(fù)上一次的冒號命令。:sh 調(diào)用shell,用exit返回vim。:r !cmd 將命令的返回結(jié)果插入文件當(dāng)前位置。:m,nw !cmd 將文件的m行到n行之間的內(nèi)容做為命令輸入執(zhí)行命令。Contents一些快捷鍵(收集中) K: 打開光標(biāo)所在詞的manpage。*: 向下搜索光標(biāo)所在詞。#: 向上搜索光標(biāo)所在詞。~: 反轉(zhuǎn)光標(biāo)所在字符的大小寫。%: 移動到匹配的(),{}或上。 Contents 18 19.多行縮進(jìn)
按v進(jìn)入visual狀態(tài),選擇多行,用>或q
Execute a macro: @
Contents 20 如何快速從正文復(fù)制一段字符到Vim命令行?
先 yank
然后 ctrl+r ”
詳見 :help :
Contents 21 shell 下匹配中文的搜索
:vimgrep //g /app/www/gamelive/default.sdo.com/public/api/**/*.php
//把^去掉則匹配任意英文字符(非中文字符)
:cnext (:cn)
:cprevious (:cp)
:cwindow (:cw)
比如命令:
:vimgrep /an error/ *.c
就是在所有的.c文件中搜索an error。
:vimgrep/an error/*
意思是查找當(dāng)前目錄下的文件中的an error,不包括子目錄
:vimgrep/an error/**
查找當(dāng)前目錄并且包括遞歸子目錄下的所有文件
:vimgrep/an error/**/*.php
查找當(dāng)前目錄并且包括遞歸子目錄下的所有PHP
vimgrep會產(chǎn)生一個error list,其實就是搜索結(jié)果列表。并會打開之一個符合的文件中之一個符合的位置。
Contents 22 以16進(jìn)制編輯 首先,打開二進(jìn)制文件時要加參數(shù)”-b”,不然會報文件之一行錯誤.
$vim -b tuxcmd
打開文件后,默認(rèn)是文本格式的,我們用”:%!xxd”可以切換到十六進(jìn)制編輯.
:%!xxd
是不是和utaredit很像呀?還可以加上參數(shù)-c來設(shè)置每行顯示多少字節(jié),比方用”:%!xxd -c 16″,就會顯示成16字節(jié)一行.
如果用”:%!od”命令,則會隱藏左側(cè)的文本列.
不過,有一點不爽的就是改變文本列,不會改變16進(jìn)制里的數(shù)據(jù),只能手動在16進(jìn)制列做修改.在文本列里的修改是不會生效的.
注意:修改完成后,不要保存,要再用”:%!xxd -r”切換成文本狀態(tài)格式再保存.
:%!xxd -r
匹配括號匹配:
% 可以讓光標(biāo)從它當(dāng)前所在的括號跳轉(zhuǎn)到與它相匹配的括號上去, 對花括號和
圓括號, 方括號都有效, 常用于手工檢查括號是否匹對.
緩沖文件切換:
map :bp ” right arrow (normal mode) switches buffers (excluding minibuf)
“map :TlistToggle
“map :bn ” right arrow (normal mode) switches buffers (excluding minibuf)
“map :bp ” left arrow (normal mode) switches buffers (excluding minibuf)
進(jìn)入vi的命令vi filename :打開或新建文件
vi +n filename :打開文件,并將光標(biāo)置于第n行首
vi + filename :打開文件,并將光標(biāo)置于最后一行首
vi +/pattern filename:打開文件,并將光標(biāo)置于之一個與pattern匹配的串處
vi -r filename :在上次正用vi編輯時發(fā)生系統(tǒng)崩潰,恢復(fù)filename
一。命令模式1.光標(biāo)移動
k或ctrl+p 上
j或Ctrl+n 下
h或Backspace 左
l或space 右
0 行首
$ 行末
G或GG 到最后一行
gg 到之一行
Enter :光標(biāo)下移一行
b或B 光標(biāo)左移一個字至字首
e或E 光標(biāo)右移一個字j至字尾
nG 光標(biāo)移至第n行首
n+ 光標(biāo)下移n行
n- 光標(biāo)上移n行(按-時不需要按shift)
H 光標(biāo)移至屏幕頂行
M 光標(biāo)移至屏幕中間行
L 光標(biāo)移至屏幕最后行
2.替換
r 替換 eg: rt , 10 r 03.刪除
x 以字符刪除
nx 刪除n個字符
dd 行刪除
ndd 刪除n行
dG 刪除光標(biāo)所在位置以下的內(nèi)容(包括光標(biāo)所在的行)
u 撤消
J 將光標(biāo)所在行和光標(biāo)以下的行合并4.復(fù)制粘貼
yy復(fù)制
nyy
p粘貼到光標(biāo)下邊
P粘貼到光標(biāo)上邊5.退出
ZZ保存退出
ZQ不保存退出6.查找
/ 正向查找
? 反向查找
n 繼續(xù)查找
二。編輯模式(插入模式)i 左插入
a 右插入
o 下起一行插入I 行首插入
A 行末插入
O 上起一行插入
三。底行模式(末行模式)1.讀取文件
r 把另外一個文件讀取到當(dāng)前文件中來 eg: r /etc/passwd2.替換
s 替換 語法: n1,n2s/*/$/gc3.保存退出
n1,n2 w 路徑 將n1到n2行另存為
w 保存
wq 保存退出
q 不保存退出
wq! 強(qiáng)制性保存退出set number 顯示行號
set nonumber
set ignorance 在搜索中忽略大小寫vi參數(shù)
-o 橫屏
-O 豎屏
現(xiàn)在在redhat的linux系統(tǒng)中已經(jīng)不再用vi了,而是用vim,下面是vi和vim的區(qū)別,但是vim完全兼容vi
Vi與Vim的區(qū)別
VIM 是 Unix 世界里極為普遍的全屏幕文書編輯器,幾乎可以說任何一臺 Unix 機(jī)器都會提供這套軟體。熟悉 DOS 下的文書處理後,也許會感到 VIM 并不好用;Unix 上也已經(jīng)發(fā)展出許多更新、更好用的文書編輯器,但是并不一定每一臺 Unix 機(jī)器上都會安裝這些額外的軟體。所以,學(xué)習(xí) VIM 的基本操作還是有好處,讓你在各個不同的機(jī)器上得心應(yīng)手。vi是unix的標(biāo)準(zhǔn)配置,一般默認(rèn)都安裝了;而vim是vi的一個提升版本,當(dāng)然現(xiàn)在已經(jīng)獨立于vi,而且功能比vi要強(qiáng)大。 簡單點來說,它們都是多模式編輯器,
不同的是vim 是vi的升級版本,它不僅兼容vi的所有指令,
而且還有一些新的特性在里面。
vim的這些優(yōu)勢主要體現(xiàn)在以下幾個方?jīng)]畝廳面:1、多級撤消
我們知道在vi里,按u只能撤消上次命令,而在vim里可以無限制的枯隱撤消。2、易用性
vi只能運行于unix類中,而vim不僅可以運行于unix,windows ,mac等多操作平臺。3、語法加亮
vim可以用不同的顏色來加亮你的代碼。4、可視化操作
就是說vim不僅可以在終端運行,也可耐穗以運行于x window、 mac os、 windows。5、對vi的完全兼容
某些情況下,你可以把vim當(dāng)成vi來使用。
關(guān)于linux gc的介紹到此就結(jié)束了,不知道你從中找到你需要的信息了嗎 ?如果你還想了解更多這方面的信息,記得收藏關(guān)注本站。
成都創(chuàng)新互聯(lián)科技公司主營:網(wǎng)站設(shè)計、網(wǎng)站建設(shè)、小程序制作、成都軟件開發(fā)、網(wǎng)頁設(shè)計、微信開發(fā)、成都小程序開發(fā)、網(wǎng)站制作、網(wǎng)站開發(fā)等業(yè)務(wù),是專業(yè)的成都做小程序公司、成都網(wǎng)站建設(shè)公司、成都做網(wǎng)站的公司。創(chuàng)新互聯(lián)公司集小程序制作創(chuàng)意,網(wǎng)站制作策劃,畫冊、網(wǎng)頁、VI設(shè)計,網(wǎng)站、軟件、微信、小程序開發(fā)于一體。
當(dāng)前題目:Linux的垃圾回收機(jī)制——GC簡介(linuxgc)
文章來源:http://www.dlmjj.cn/article/dpcesip.html


咨詢
建站咨詢
