當前位置:首頁 » 操作系統 » 快三平台源碼

快三平台源碼

發布時間: 2023-03-19 21:44:40

A. VB 請問高手,如何讓 VB 運行的速度快


1. 使用整數(Integer)和長整數(Long)
提高代碼運行速度最簡單的方法莫過於使用正確的數據類型了。也許你不相信,但是正確地選擇數據類型可以大幅度提升代碼的性能。在大多數情況下,程序員可以將Single,Double和Currency類型的變數替換為Integer或Long類型的變數,因為VB處理Integer和Long的能力遠遠高於處理其它幾種數據類型。下面是排序:
Long 最快
Integer .
Byte .
Single .
Double .
Currency 最慢

在大多數情況下,程序員選擇使用Single或Double的原因是因為它們能夠保存小數。但是小數也可以保存在Integer類型的變數中。例如程序中約定有三位小數,那麼只需要將保存在Integer變數中的數值除以1000就可以得到結果。根據我的經驗,使用Integer和Long替代Single,Double和Currency後,代碼的運行速度可以提高將近10倍。

2. 避免使用變體

對於一個VB程序員來說,這是再明顯不過的事情了。變體類型的變數需要16個位元組的空間來保存數據,而一個整數(Integer)只需要2個位元組。通常使用變體類型的目的是為了減少設計的工作量和代碼量,也有的程序員圖個省事而使用它。但是如果一個軟體經過了嚴格設計和按照規范編碼的話,完全可以避免使用變體類型。

在這里順帶提一句,對於Object對象也存在同樣的問題。請看下面的代碼:

Dim FSO
Set FSO = New Scripting.FileSystemObject



Dim FSO as object
Set FSO = New Scripting.FileSystemObject

上面的代碼由於在申明的時候沒有指定數據類型,在賦值時將浪費內存和CPU時間。正確的代碼應該象下面這樣:

Dim FSO as New FileSystemObject
3. 盡量避免使用屬性

在平時的代碼中,最常見的比較低效的代碼就是在可以使用變數的情況下,反復使用屬性(Property),尤其是在循環中。要知道存取變數的速度是存取屬性的速度的20倍左右。下面這段代碼是很多程序員在程序中會使用到的:

Dim intCon as Integer
For intCon = 0 to Ubound(SomVar())
Text1.Text = Text1.Text & vbcrlf & SomeVar(intCon)
Next intCon

下面這段代碼的執行速度是上面代碼的20倍。

Dim intCon as Integer
Dim sOutput as String
For intCon = 0 to Ubound(SomeVar())
sOutput = sOutput & vbCrlf &
SomeVar(intCon)
Next
Text1.Text = sOutput

同樣地,像這樣的代碼 . . .

Do Until EOF(F)
Line Input #F, nextLine
Text1.Text = Text1.Text + nextLine
Loop

. . . 比下面的代碼慢得多:

Do Until EOF(F)
Line Input #F, nextLine
bufferVar = bufferVar + nextLine
Loop
Text1.Text = bufferVar

然而,下面的代碼完成了相同的功能,而且還要快:

Text1.Text = Input(F, LOF(F))

如上述,幾種方法都實現了同樣的任務;同時,最好的演算法也是最優的。

4. 盡量使用數組,避免使用集合

除非你必須使用集合(Collection),否則你應該盡量使用數組。據測試,數組的存取速度可以達到集合的100倍。這個數字聽起來有點駭人聽聞,但是如果你考慮到集合是一個對象,你就會明白為什麼差異會這么大。

5. 展開小的循環體

在編碼的時候,有可能遇到這種情況:一個循環體只會循環2到3次,而且循環體由幾行代碼組成。在這種情況下,你可以把循環展開。原因是循環會佔用額外的CPU時間。但是如果循環比較復雜,你就沒有必要這樣做了。

6. 避免使用很短的函數

和使用小的循環體相同,調用只有幾行代碼的函數也是不經濟的--調用函數所花費的時間或許比執行函數中的代碼需要更長的時間。在這種情況下,你可以把函數中的代碼拷貝到原來調用函數的地方。

7. 減少對子對象的引用

在VB中,通過使用.來實現對象的引用。例如:

Form1.Text1.Text

在上面的例子中,程序引用了兩個對象:Form1和Text1。利用這種方法引用效率很低。但遺憾的是,沒有辦法可以避免它。程序員唯一可以做就是使用With或者將用另一個對象保存子對象(Text1)。

' 使用With
With frmMain.Text1
.Text = "Learn VB"
.Alignment = 0
.Tag = "Its my life"
.BackColor = vbBlack
.ForeColor = vbWhite
End With

或者

' 使用另一個對象保存子對象
Dim txtTextBox as TextBox
Set txtTextBox = frmMain.Text1
TxtTextBox.Text = "Learn VB"
TxtTextBox.Alignment = 0
TxtTextBox.Tag = "Its my life"
TxtTextBox.BackColor = vbBlack
TxtTextBox.ForeColor = vbWhite

注意,上面提到的方法只適用於需要對一個對象的子對象進行操作的時候,下面這段代碼是不正確的:

With Text1
.Text = "Learn VB"
.Alignment = 0
.Tag = "Its my life"
.BackColor = vbBlack
.ForeColor = vbWhite
End With

很不幸的是,我們常常可以在實際的代碼中發現類似於上面的代碼。這樣做只會使代碼的執行速度更慢。原因是With塊編譯後會形成一個分枝,會增加了額外的處理工作。

8. 檢查字元串是否為空

大多數程序員在檢查字元串是否為空時會使用下面的方法:

If Text1.Text = "" then
' 執行操作
End if

很不幸,進行字元串比較需要的處理量甚至比讀取屬性還要大。因此我建議大家使用下面的方法:

If Len(Text1.Text) = 0 then
' 執行操作
End if

9. 去除Next關鍵字後的變數名

在Next關鍵字後加上變數名會導致代碼的效率下降。我也不知道為什麼會這樣,只是一個經驗而已。不過我想很少有程序員會這樣畫蛇添足,畢竟大多數程序員都是惜字如金的人。

' 錯誤的代碼
For iCount = 1 to 10
' 執行操作
Next iCount
' 正確的代碼
For iCount = 1 to 10
' 執行操作
Next

10. 使用數組,而不是多個變數

當你有多個保存類似數據的變數時,可以考慮將他們用一個數組代替。在VB中,數組是最高效的數據結構之一。

11. 使用動態數組,而不是靜態數組

使用動態數組對代碼的執行速度不會產生太大的影響,但是在某些情況下可以節約大量的資源。

12. 銷毀對象

無論編寫的是什麼軟體,程序員都需要考慮在用戶決定終止軟體運行後釋放軟體佔用的內存空間。但遺憾的是很多程序員對這一點好像並不是很在意。正確的做法是在退出程序前需要銷毀程序中使用的對象。例如:

Dim FSO as New FileSystemObject
' 執行操作
' 銷毀對象
Set FSO = Nothing
對於窗體,可以進行卸載:
Unload frmMain



Set frmMain = Nothing

13. 變長和定長字元串

從技術上來說,與變長字元串相比,定長字元串需要較少的處理時間和空間。但是定長字元串的缺點在於在很多情況下,你都需要調用Trim函數以去除字元串末的空字元,這樣反而會降低代碼效率。所以除非是字元串的長度不會變化,否則還是使用變長字元串。

14. 使用類模塊,而不是ActiveX控制項

除非ActiveX控制項涉及到用戶界面,否則盡量使用輕量的對象,例如類。這兩者之間的效率有很大差異。

15. 使用內部對象

在涉及到使用ActiveX控制項和DLL的時候,很多程序員喜歡將它們編譯好,然後再加入工程中。我建議你最好不要這樣做,因為從VB連接到一個外部對象需要耗費大量的CPU處理能力。每當你調用方法或存取屬性的時候,都會浪費大量的系統資源。如果你有ActiveX控制項或DLL的源代碼,將它們作為工程的私有對象。

16. 減少模塊的數量

有些人喜歡將通用的函數保存在模塊中,對於這一點我表示贊同。但是在一個模塊中只寫上二三十行代碼就有些可笑了。如果你不是非常需要模塊,盡量不要使用它。這樣做的原因是因為只有在模塊中的函數或變數被調用時,VB才將模塊載入到內存中;當VB應用程序退出時,才會從內存中卸載這些模塊。如果代碼中只有一個模塊,VB就只會進行一次載入操作,這樣代碼的效率就得到了提高;反之如果代碼中有多個模塊,VB會進行多次載入操作,代碼的效率會降低。

17. 使用對象數組

當設計用戶界面時,對於同樣類型的控制項,程序員應該盡量使用對象數組。你可以做一個實驗:在窗口上添加100個PictureBox,每個PictureBox都有不同的名稱,運行程序。然後創建一個新的工程,同樣在窗口上添加100個PictureBox,不過這一次使用對象數組,運行程序,你可以注意到兩個程序載入時間上的差別。

18. 使用Move方法

在改變對象的位置時,有些程序員喜歡使用Width,Height,Top和Left屬性。例如:

Image1.Width = 100
Image1.Height = 100
Image1.Top = 0
Image1.Left = 0

實際上這樣做效率很低,因為程序修改了四個屬性,而且每次修改之後,窗口都會被重繪。正確的做法是使用Move方法:

Image1.Move 0,0,100,100

19. 減少圖片的使用

圖片將佔用大量內存,而且處理圖片也需要佔用很多CPU資源。在軟體中,如果可能的話,可以考慮用背景色來替代圖片--當然這只是從技術人員的角度出發看這個問題。

20. 使用ActiveX DLL,而不是ActiveX控制項

如果你設計的ActiveX對象不涉及到用戶界面,使用ActiveX DLL。

21. 使用類可以提高軟體的整體性能
VB提供的機制不完全支持面向對象的設計和編碼,但是VB提供了簡單的類。大多數人認為使用對象將導致代碼的效率降低。對於這一點我個人有些不同的意見;考察代碼的效率不能純粹從運行速度的角度出發,軟體佔用的資源也是需要考慮的因素之一。使用類可以幫助你在整體上提升軟體的性能。

22. 盡可能使用常數
使用常數可以加快應用程序的運行,增強代碼的可讀性,而且易於維護。如果代碼中的字元串或數字是不變的,則可把它們聲明為常數。常數在編譯時只處理一次,將適當的值寫進代碼;而變數在每次運行應用程序時都要讀取當前值。
盡量使用對象瀏覽器中列舉的內部常數,而不要自己去創建。不要擔心應用程序中引用的模塊包含多餘的常數;多餘的常數在形成 .exe 文件時被刪除。

23. 用 ByVal 傳遞參數,而不用 ByRef
編寫含參數的 Sub 或 Function 過程時,按值 (ByVal) 傳遞參數比按地址 (ByRef) 快。盡管 Visual Basic 中參數傳遞的預設方式是按地址的 (ByRef) ,但實際上需要改變參數值的過程極少。如果過程中不需改變參數的值,就可以按值 (ByVal) 來傳遞,舉例說明如下:

Private Sub DoSomething(ByVal strName As String, _
ByVal intAge As Integer)

24. 使用類型確定的可選參數
使用 Visual Basic 5.0 中類型確定的可選參數,可以提高 Sub 或 Function 的調用速度。Visual Basic 以前版本中的可選參數只能是 Variant 的。如果過程是按值傳遞參數的,正如下面的例子,16 個位元組的 Variant 變數保存在堆棧中。

Private Sub DoSomething(ByVal strName As String, _
Optional ByVal vntAge As Variant, _
Optional ByVal vntWeight As Variant)

使用類型確定的可選參數,每次調用時佔用的堆棧空間較少,而且傳遞到內存中的數據也較少:

Private Sub DoSomething(ByVal strName As String, _
Optional ByVal intAge As Integer, _
Optional ByVal intWeight As Integer)

類型確定的可選參數的訪問速度比 Variant 快,而且一旦數據類型錯誤,編譯時就顯示錯誤信息。

25利用集合的優點
可以定義和使用對象的集合是 Visual Basic 的強大功能之一。盡管集合是非常有用的,但還要正確使用才能獲得最好的效果:

使用 For Each...Next 替代 For...Next。

26. 添加集合的對象時避免使用 Before 和 After 參數。

使用鍵集而不用幾組相同對象的數組。
集合可以用 For...Next 循環進行迭代。但採用 For Each...Next 可讀性更好,而且多數情況下更快。For Each...Next 是由集合的生成器實現迭代的,所以實際的操作速度將隨集合對象的不同而改變。由於 For Each...Next 的最簡單的實現機理就是 For...Next 的線性迭代,因此 For Each...Next 不會比 For...Next 慢。但是,有些情況下採用了比線性迭代更復雜的實現機理,所以 For Each...Next 要快得多。

如果沒有使用 Before 和 After 參數,則往集合中添加對象是非常快的。否則,Visual Basic 必須在集合中檢測到其它對象後,才能添加新對象。

如果對象的類型都一樣,集合或數組都可以用來管理這些對象(如果對象的類型不一樣,則只能用集合)。從速度的觀點看,選擇何種方式取決於對象的訪問方式。如果能夠為每一對象分配唯一的鍵,則集合是訪問對象的最快方式。使用鍵從集合中檢索對象比從數組中順序遍歷對象快。當然,如果沒有鍵而要遍歷對象時,則選擇數組比較好。就順序遍歷方式而言,數組比集合快。

如果對象的個數少,則數組使用的內存小,並且搜索的速度快。當對象的個數在 100 左右時,集合比數組的效率高;當然,具體的數目還有賴於微處理器的速度和可用的內存。

26. 不要用Do While Not record.EOF 語句。
例如下面的代碼比較慢:
Do While Not record.EOF
'代碼
record.MoveNext
Loop

下面的要快好多

Record.MoveLast
intCount=Record.RecordCount
Record.MoveFirst
For i=1 To intCount
'代碼
Records.MoveNext
Next i

第二部分 編譯優化

我所見過的很多VB程序員從來沒有使用過編譯選項,也沒有試圖搞清楚各個選項之間的差別。下面讓我們來看一下各個選項的具體含義。

1. P-代碼(偽代碼)和本機代碼

你可以選擇將軟體編譯為P-代碼或是本機代碼。預設選項是本機代碼。那什麼是P-代碼和本機代碼呢?
P-代碼:當在VB中執行代碼時,VB首先是將代碼編譯為P-代碼,然後再解釋執行編譯好的P-代碼。在編譯環境下,使用這種代碼要比本機代碼快。選擇P-代碼後,編譯時VB將偽代碼放入一個EXE文件中。

本機代碼:本機代碼是VB6以後才推出的選項。當編譯為EXE文件後,本機代碼的執行速度比P-代碼快。選擇本機代碼後,編譯時VB使用機器指令生成EXE文件。

在使用本機代碼進行編譯時,我發現有時候會引入一些莫名其妙的錯誤。在編譯環境中我的代碼完全正確地被執行了,但是用本機代碼選項生成的EXE文件卻不能正確執行。通常這種情況是在卸載窗口或彈出列印窗口時發生的。我通過在代碼中加入DoEvent語句解決了這個問題。當然出現這種情況的幾率非常少,也許有些VB程序員從來沒有遇到過,但是它的確存在。

在本機代碼中還有幾個選項:

a) 代碼速度優化:該選項可以編譯出速度較快的執行文件,但執行文件比較大。推薦使用

b) 代碼大小優化:該選項可以編譯出比較小的執行文件,但是以犧牲速度為代價的,不推薦使用。

c) 無優化:該選項只是將P-代碼轉化為本機代碼,沒有做任何優化。在調試代碼時可以使用。

d) 針對Pentium Pro優化:雖然該項不是本機代碼中的預設選項,但是我通常會使用該選項。該選項編譯出的可執行程序在Pentium Pro和Pentium 2以上的機器上可以運行得更快,而在比較老的機器上要稍稍慢一些。考慮到現在用Pentium 2都是落伍,所以推薦大家使用該選項。

e) 產生符號化調試信息:該項在編譯過程中生成一些調試信息,使用戶可以利用Visual C++一類的工具來調試編譯好的代碼。使用該選項會生成一個.pdf文件,該文件記錄了可執行文件中的標志信息。當程序擁有API函數或DLL調用時,該選項還是比較有幫助的。

2. 高級優化

高級優化中的設置可以幫助你提高軟體的速度,但是有時候也會引入一些錯誤,因此我建議大家盡量小心地使用它們。如果在代碼中有比較大的循環體或者復雜的數學運算時,選中高級優化中的某些項會大幅度提升代碼的性能。如果你使用了高級優化功能,我建議你嚴格測試編譯好的文件。

a) 假定無別名:可以提高循環體中代碼的執行效率,但是在如果通過變數的引用改變變數值的情況下,例如調用一個方法,變數的引用作為方法的參數,在方法中改變了變數的值的話,就會引發錯誤。有可能只是返回的結果錯誤,也有可能是導致程序中斷運行的嚴重錯誤。

b) 取消數組綁定檢查、取消整數溢出檢查和取消浮點錯誤檢查:在程序運行時,如果通過這些檢查發現了錯誤,錯誤處理代碼會處理這些錯誤。但是如果取消了這些檢查,發生了錯誤程序就無法處理。只有當你確定你的代碼中不會出現上面的這些錯誤時,你才可以使用這些選項。它們將使軟體的性能得到很大的提升。

c) 允許不舍入的浮點操作:選擇該選項可以是編譯出來的程序更快地處理浮點操作。它唯一的缺點就是在比較兩個浮點數時可能會導致不正確的結果。

d) 取消Pentium FDIV安全檢查:該選項是針對一些老的Pentium晶元設置的,現在看來已經過時了。

B. C語言的一個特點是「生成目標代碼質量高,程序執行效率高」這句話什麼意思啊

這句話是說,c和其他語言比,生成的目標代碼比其他語言生成的目標代碼高,執行效率高。
意思是,你用c寫的一段代碼,同樣的功能,你如果用其他語言寫,比如perl,java,c#,同樣可以生成一個exe運行。
但是用c出來的exe比其他語言小,執行的速度也比其他的快。
那個exe裡面的東西就叫目標代碼,你手寫的那些代碼就叫源代碼。source,object。

他說的生效是編譯通過,就是源代碼變成目標代碼。其實他的意思是,如果好一些的語言或者編譯開發環境,對於錯誤能更好的檢查或者自動修正,可以提高開發的效率。但和你說的運行效率沒有太大直接關系。

C. 低代碼平台哪家強

低代碼平台哪家強?可以參考一下(天翎)低代碼開發平台

一 、什麼是低代碼開發平台

「低代碼開發平台」指的是一種快速開發應用軟體的系統,用戶通過少量代碼即可以快速構建出OA協同、公文督辦、KM文庫、項目管理、采購管理、生產管理、供應鏈管理等一些列職能類和業務類管理系統。

二、低代碼開發平台的兩種模式

目前市面上的低代碼開發平台主要分為兩種模式。一種是引擎式開發模式,一種是快速生成代碼模式。引擎式開發,是目前最先進的軟體快速開發方式之一,只需在開發後台進行配置,即可完成軟體開發的過程,由於過程中沒有生成或修改底層源碼,平台可以統一維護和升級,輕松實現復雜的業務邏輯。

這種模式的低代碼開發平台主要成功代表有(天翎MyApps低代碼平台),他們的產品完全採用引擎式開發模式,整個過程都是可視化操作模式,不需要編碼即可進行打包、編譯及發布,開發和效率得到了極大的提高。

第二種便是源碼生成模式,這種模式主要通過桌面式設計器來定義業務模塊,輔助生成源代碼框架,然後用戶可以在生成的源代碼的基礎上去編寫、修改自己的源代碼來實現業務邏輯,因此生成源碼模式也可認為是一種代碼生成器。這種模式對開發人員的要求比較高。

三、低代碼開發平台的價值

  • 對開發者而言

  • 圖形化操作,容易上手;

    提供成熟案例模板庫,不用從零開始;

    支持所有主流應用伺服器和資料庫,降低開發難度;

    介面豐富,節省開發時間;

    強大的代碼調試功能,提升開發效率;

  • 對企業而言

  • 優化流程,提升企業運作效率

    節省成本,提升企業效益

    維護方便,即改即用

    一鍵升級,方便實用

  • 對使用者而言

  • 操作簡單、友好 、人性化

    消息驅動,合理利用工作時間

    即用即改,優化完善軟體功能

    多客戶端入口,隨時隨地辦公

    四 、低代碼開發平台的未來趨勢

    毫無疑問,作為行業領先的低代碼開發平台廠商,無論是產品還是服務(天翎)都做到了極致,我們致力於將復雜的技術以簡單的模式為廣大政企賦能,為企業縮短開發周期、降低運營成本、提高開發的質量。

    未來也會有越來越多的開發人員使用低代碼平台實現更多的業務功能。沒什麼不可以!動手試一試,藉助簡單的教程,用低代碼開發平台來開啟自己的低代碼開發之旅吧!

熱點內容
存儲過程參數傳遞 發布:2023-03-24 11:37:28 瀏覽:463
冗餘配置節點是什麼 發布:2023-03-24 11:35:30 瀏覽:380
已加密字串 發布:2023-03-24 11:34:42 瀏覽:529
安卓系統有線投屏怎麼弄 發布:2023-03-24 11:33:04 瀏覽:28
編程前端開發 發布:2023-03-24 11:30:36 瀏覽:144
電腦上的賬戶密碼去哪裡找 發布:2023-03-24 11:30:28 瀏覽:140
京華科訊一體機電腦密碼多少 發布:2023-03-24 11:30:28 瀏覽:460
密碼櫃鎖芯如何安裝 發布:2023-03-24 11:29:37 瀏覽:284
android的usb驅動 發布:2023-03-24 11:28:12 瀏覽:364
逆戰什麼配置玩塔防不卡 發布:2023-03-24 11:27:10 瀏覽:248