【问题标题】:Speed issues with ReaderWriterLockSlim and Garbage CollectionReaderWriterLockSlim 和垃圾收集的速度问题
【发布时间】:2010-10-17 20:33:34
【问题描述】:

我有一个示例代码,它说明了在具有 ReaderWriterLockSlim 成员变量的类上执行 GC.Collect 时我的代码中的问题。 GC.Collect 需要 2 到 3 秒来运行。我需要定期执行 GC,因为我的应用程序非常占用内存。

namespace WpfApplication12
{
    public class DataItem
    {
        private readonly ReaderWriterLockSlim m_propertyLock = new ReaderWriterLockSlim();

        public DataItem()
        {
        }
    }

    /// <summary>
    /// Interaction logic for Window1.xaml
    /// </summary>
    public partial class Window1 : Window
    {
        public Window1()
        {
            InitializeComponent();

            List<DataItem> dataItemList = new List<DataItem>();
            for (int i = 0; i < 100000; i++)
            {
                dataItemList.Add(new DataItem());
            }

            Debug.WriteLine(DateTime.Now.ToString());
            GC.Collect();
            Debug.WriteLine(DateTime.Now.ToString());
        }
    }
}

有没有人遇到过类似的问题?

谢谢 伊恩

【问题讨论】:

    标签: garbage-collection readerwriterlockslim


    【解决方案1】:

    请问您是否真的需要为每个 DataItem 课程提供 ReaderWriterLockSlim

    对我来说,让这么多手柄漂浮在我看来是糟糕的设计。毕竟,这就是导致延迟的原因......

    【讨论】:

      【解决方案2】:

      如果从多个线程调用 readerwriterlockslim 可能会导致内存问题。我相信它会存储一些可能导致内存消耗膨胀的线程信息。我建议尝试找出一个解决方案,您可以减少调用 readerwriterlockslim 的线程数。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-02-23
        • 2011-06-03
        • 1970-01-01
        • 2014-03-31
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多