Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
cdy816
Mars
提交
13134655
Mars
项目概览
cdy816
/
Mars
通知
3
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
Mars
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
13134655
编写于
7月 20, 2020
作者:
cdy816
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
完成指定线程到指定CPU
上级
a88acdbd
变更
10
隐藏空白更改
内联
并排
Showing
10 changed file
with
135 addition
and
22 deletion
+135
-22
Common/Cdy.Tag.Common/Common/ThreadHelper.cs
Common/Cdy.Tag.Common/Common/ThreadHelper.cs
+23
-2
RunTime/DBInRun/Properties/launchSettings.json
RunTime/DBInRun/Properties/launchSettings.json
+1
-1
RunTime/DBRuntime/His/CPUAssignHelper.cs
RunTime/DBRuntime/His/CPUAssignHelper.cs
+95
-0
RunTime/DBRuntime/His/Compress/CompressEnginer.cs
RunTime/DBRuntime/His/Compress/CompressEnginer.cs
+3
-8
RunTime/DBRuntime/His/Compress/CompressMemory.cs
RunTime/DBRuntime/His/Compress/CompressMemory.cs
+2
-2
RunTime/DBRuntime/His/HisEnginer.cs
RunTime/DBRuntime/His/HisEnginer.cs
+1
-0
RunTime/DBRuntime/His/Serise/SeriseEnginer.cs
RunTime/DBRuntime/His/Serise/SeriseEnginer.cs
+1
-0
RunTime/DBRuntime/His/TimerMemoryCacheProcesser.cs
RunTime/DBRuntime/His/TimerMemoryCacheProcesser.cs
+5
-5
RunTime/DBRuntime/His/ValueChangedMemoryCacheProcesser.cs
RunTime/DBRuntime/His/ValueChangedMemoryCacheProcesser.cs
+2
-4
RunTime/DBRuntime/Runner.cs
RunTime/DBRuntime/Runner.cs
+2
-0
未找到文件。
Common/Cdy.Tag.Common/Common/ThreadHelper.cs
浏览文件 @
13134655
...
...
@@ -44,13 +44,13 @@ namespace Cdy.Tag
/// CPU 个数
/// </summary>
/// <returns></returns>
public
static
int
CPU
Numbers
()
public
static
int
GetProcess
Numbers
()
{
return
Environment
.
ProcessorCount
;
}
/// <summary>
///
///
将当前线程绑定到指定CPU
/// </summary>
/// <param name="cpus"></param>
public
static
void
AssignToCPU
(
params
int
[]
cpus
)
...
...
@@ -69,6 +69,27 @@ namespace Cdy.Tag
}
}
/// <summary>
/// 获取当前线程所在CPU ID
/// </summary>
/// <returns></returns>
public
static
uint
GetCurrentProcessorNumber
()
{
if
(
RuntimeInformation
.
IsOSPlatform
(
OSPlatform
.
Windows
))
{
return
Win32Native
.
NtGetCurrentProcessorNumber
();
}
else
if
(
RuntimeInformation
.
IsOSPlatform
(
OSPlatform
.
Linux
))
{
}
else
{
//to do none;
}
return
uint
.
MaxValue
;
}
/// <summary>
/// Sets a processor affinity mask for the current thread.
/// </summary>
...
...
RunTime/DBInRun/Properties/launchSettings.json
浏览文件 @
13134655
...
...
@@ -2,7 +2,7 @@
"profiles"
:
{
"DBInRun"
:
{
"commandName"
:
"Executable"
,
"executablePath"
:
"C:
\\
Users
\\
Lenovo
\\
source
\\
repos
\\
mars
\\
Output
\\
DBInRun.exe"
"executablePath"
:
"C:
\\
Users
\\
cdy81
\\
source
\\
repos
\\
mars
\\
Output
\\
DBInRun.exe"
}
}
}
\ No newline at end of file
RunTime/DBRuntime/His/CPUAssignHelper.cs
0 → 100644
浏览文件 @
13134655
//==============================================================
// Copyright (C) 2020 Chongdaoyang Inc. All rights reserved.
//
//==============================================================
// Create by 种道洋 at 2020/7/20 20:07:14 .
// Version 1.0
// CDYWORK
//==============================================================
using
System
;
using
System.Collections.Generic
;
using
System.Text
;
namespace
Cdy.Tag
{
/// <summary>
///
/// </summary>
public
class
CPUAssignHelper
{
#
region
...
Variables
...
/// <summary>
///
/// </summary>
public
static
CPUAssignHelper
Helper
=
new
CPUAssignHelper
();
#
endregion
...
Variables
...
#
region
...
Events
...
#
endregion
...
Events
...
#
region
...
Constructor
...
#
endregion
...
Constructor
...
#
region
...
Properties
...
/// <summary>
///
/// </summary>
public
int
[]
CPUArray1
{
get
;
set
;
}
/// <summary>
///
/// </summary>
public
int
[]
CPUArray2
{
get
;
set
;
}
#
endregion
...
Properties
...
#
region
...
Methods
...
/// <summary>
///
/// </summary>
public
void
Init
()
{
int
count
=
ThreadHelper
.
GetProcessNumbers
();
if
(
count
==
1
)
{
CPUArray1
=
new
int
[]
{
0
};
CPUArray2
=
new
int
[]
{
0
};
}
else
if
(
count
==
2
)
{
CPUArray1
=
new
int
[]
{
0
};
CPUArray2
=
new
int
[]
{
1
};
}
else
{
List
<
int
>
ltmp
=
new
List
<
int
>();
for
(
int
i
=
0
;
i
<
count
/
2
;
i
++)
{
ltmp
.
Add
(
i
);
}
CPUArray1
=
ltmp
.
ToArray
();
ltmp
.
Clear
();
for
(
int
i
=
count
/
2
;
i
<
count
;
i
++)
{
ltmp
.
Add
(
i
);
}
CPUArray2
=
ltmp
.
ToArray
();
}
}
#
endregion
...
Methods
...
#
region
...
Interfaces
...
#
endregion
...
Interfaces
...
}
}
RunTime/DBRuntime/His/Compress/CompressEnginer.cs
浏览文件 @
13134655
...
...
@@ -47,7 +47,6 @@ namespace Cdy.Tag
private
long
mTotalSize
=
0
;
public
static
List
<
int
>
UsedCPUs
=
new
List
<
int
>();
#
endregion
...
Variables
...
...
...
@@ -197,14 +196,14 @@ namespace Cdy.Tag
private
void
ThreadPro
()
{
while
(!
mIsClosed
)
ThreadHelper
.
AssignToCPU
(
CPUAssignHelper
.
Helper
.
CPUArray2
);
while
(!
mIsClosed
)
{
resetEvent
.
WaitOne
();
resetEvent
.
Reset
();
if
(
mIsClosed
)
break
;
ThreadHelper
.
AssignToCPU
(
UsedCPUs
.
ToArray
());
//#if DEBUG
Stopwatch
sw
=
new
Stopwatch
();
sw
.
Start
();
...
...
@@ -218,13 +217,9 @@ namespace Cdy.Tag
Thread
.
Sleep
(
500
);
}
//foreach (var mm in mTargetMemorys)
//{
// mm.Value.Compress(sm);
//}
System
.
Threading
.
Tasks
.
Parallel
.
ForEach
(
mTargetMemorys
,
(
mm
)
=>
{
ThreadHelper
.
AssignToCPU
(
CPUAssignHelper
.
Helper
.
CPUArray2
);
mm
.
Value
.
Compress
(
sm
);
});
...
...
RunTime/DBRuntime/His/Compress/CompressMemory.cs
浏览文件 @
13134655
...
...
@@ -31,7 +31,7 @@ namespace Cdy.Tag
private
IHisEngine
mHisTagService
;
private
Dictionary
<
int
,
CompressUnitbase
>
mCompressCach
=
new
Dictionary
<
int
,
CompressUnitbase
>();
private
Dictionary
<
int
,
long
>
dtmp
=
new
Dictionary
<
int
,
long
>();
private
bool
mIsDisposed
=
false
;
//
private bool mIsDisposed=false;
private
bool
mIsRunning
=
false
;
...
...
@@ -289,7 +289,7 @@ namespace Cdy.Tag
mHisTagService
=
null
;
mTagAddress
.
Clear
();
mTagAddress
=
null
;
mIsDisposed
=
true
;
//
mIsDisposed = true;
base
.
Dispose
();
}
...
...
RunTime/DBRuntime/His/HisEnginer.cs
浏览文件 @
13134655
...
...
@@ -624,6 +624,7 @@ namespace Cdy.Tag
{
int
number
=
MergeMemoryTime
/
CachMemoryTime
;
int
count
=
mStartMergeCount
;
ThreadHelper
.
AssignToCPU
(
CPUAssignHelper
.
Helper
.
CPUArray1
);
while
(!
mIsClosed
)
{
...
...
RunTime/DBRuntime/His/Serise/SeriseEnginer.cs
浏览文件 @
13134655
...
...
@@ -270,6 +270,7 @@ namespace Cdy.Tag
private
void
ThreadPro
()
{
ThreadHelper
.
AssignToCPU
(
CPUAssignHelper
.
Helper
.
CPUArray2
);
while
(!
mIsClosed
)
{
resetEvent
.
WaitOne
();
...
...
RunTime/DBRuntime/His/TimerMemoryCacheProcesser.cs
浏览文件 @
13134655
...
...
@@ -52,11 +52,6 @@ namespace Cdy.Tag
private
int
mBusyCount
=
0
;
/// <summary>
///
/// </summary>
public
static
List
<
int
>
UsedCPUs
=
new
List
<
int
>();
#
endregion
...
Variables
...
#
region
...
Events
...
...
...
@@ -181,6 +176,9 @@ namespace Cdy.Tag
/// </summary>
private
void
ThreadProcess
()
{
ThreadHelper
.
AssignToCPU
(
CPUAssignHelper
.
Helper
.
CPUArray1
);
closedEvent
.
Reset
();
var
vkeys
=
mCount
.
Keys
.
ToArray
();
while
(!
mIsClosed
)
...
...
@@ -188,6 +186,8 @@ namespace Cdy.Tag
resetEvent
.
WaitOne
();
resetEvent
.
Reset
();
if
(
mIsClosed
)
break
;
// LoggerService.Service.Info("TimerMemoryCacheProcesser", ThreadHelper.GetCurrentProcessorNumber() + " CPU in running!");
try
{
mIsBusy
=
true
;
...
...
RunTime/DBRuntime/His/ValueChangedMemoryCacheProcesser.cs
浏览文件 @
13134655
...
...
@@ -48,10 +48,6 @@ namespace Cdy.Tag
private
Thread
mRecordThread
;
public
static
List
<
int
>
UsedCPUs
=
new
List
<
int
>();
#
endregion
...
Variables
...
#
region
...
Events
...
...
...
@@ -185,6 +181,8 @@ namespace Cdy.Tag
/// </summary>
private
void
ThreadProcess
()
{
ThreadHelper
.
AssignToCPU
(
CPUAssignHelper
.
Helper
.
CPUArray1
);
closedEvent
.
Reset
();
while
(!
mIsClosed
)
{
...
...
RunTime/DBRuntime/Runner.cs
浏览文件 @
13134655
...
...
@@ -158,6 +158,8 @@ namespace Cdy.Tag
}
InitPath
();
CPUAssignHelper
.
Helper
.
Init
();
if
(
CheckDatabaseExist
(
mDatabaseName
))
{
LoadDatabase
();
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录