繁体   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