TPL最大化CPU和内存使用率

时间:2016-09-19 07:38:48

标签: c# memory parallel-processing task-parallel-library cpu-usage

我是并行编程的新手。我使用Parallel.Invoke()来执行6个独立的函数,它们可以相互并行运行。

我正在尝试监视查看任务管理器的代码的CPU和内存利用率。我有英特尔CORE i3系统和4GB内存。

我注意到最大CPU使用率达到30-40%甚至内存使用量最多为30%

如何利用更多CPU和内存?我没有运行任何其他应用程序。 TPL如何处理Parallel.Invoke()以及更多可用内核和RAM的使用量会增加多少?

我的代码示例:

@Override
    public void onDestroy() {
        if (mClient.isConnected())
            mClient.disconnect();
        super.onDestroy();
    }

其中每个功能如下:

  int concurrencyLevel = Environment.ProcessorCount*2;
        ParallelOptions p=new ParallelOptions{MaxDegreeOfParallelism=concurrencyLevel};
        Parallel.Invoke(p,() =>
        {
            if (elementForm.ImplementationcheckBox.Checked)
            {                   
              ImplementationDataType();
            }
        }, () =>
        {
            if (elementForm.PrimitivecheckBox.Checked)
            {

                ApplicationPrimitiveDataType();//No need to add in diagram.

            }
            //Empty diagram
        }, () =>
        {
            if (elementForm.ArraycheckBox.Checked)
            {
                 ApplicationArrayDataType();//No need to add in diagram.
                                }
        }, () =>
        {
            if (elementForm.RecordcheckBox.Checked)
            {
                                   ApplicationRecordDataType();
            }
        }, () =>
        {
            if (elementForm.CompositioncheckBox.Checked)
            {
                SenderReciverInterface();

                ApplicationSWComponentType();

                CompositionSwComponentType();

            }
        }, () =>
        {

            if (elementForm.MappingcheckBox.Checked)
            {
                DataTypeMappingSet();

            }
        }); 

0 个答案:

没有答案