簡體   English   中英

C#,程序設計,內存使用

[英]C#, Program Design, Memory Usage

所以我在程序設計上非常業余。 我在uni完成了一些課程,但它們都專注於學習語法和非常基本的設計原理。

無論如何,我正在用C#.Net編寫一個客戶端,該客戶端通過RPC與rtorrent交互。 我將torrent客戶端信息存儲在ITorrentClient界面中,並將torrent信息存儲在Torrent對象中。 要獲取有關種子的數據,它需要從ITorrentClient調用一個函數,例如:

class Torrent
{
    string _hash;
    ITorrentClient _client;

    public Torrent(ITorrentClient client)
    {
        this._client = client;
    }

    public double UploadSpeed
    {
        get
        {
            return _client.getTorrentUploadSpeed(_hash);
        }
    }
}

不幸的是,這意味着,如果您的洪流客戶端中有大量洪流(就像我一樣),您將在內存中浪費數百個ITorrentClient。 如何設計程序,使周圍沒有數百個無用的對象?

謝謝!

如果您的ITorrentClient實現是引用類型(類)而不是值類型(結構),則每個Torrent_client屬性將保存對ITorrentClient引用而不是對實際對象引用

考慮:

var client = new MyTorrentClient(); // TorrentClient implements ITorrentClient
var t1 = new Torrent(client);
var t2 = new Torrent(client);

內存中只有MyTorrentClient的一個實例,並且t1t2擁有MyTorrentClient實例的引用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM