Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
cdy816
Mars
提交
8f1ce33f
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 搜索 >>
提交
8f1ce33f
编写于
5月 21, 2020
作者:
cdy816
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
修复历史文件读取,网络实时数据接口速度优化
上级
6ac80827
变更
12
隐藏空白更改
内联
并排
Showing
12 changed file
with
72 addition
and
32 deletion
+72
-32
Common/Cdy.Tag.Common/Common/MarshalFixedMemoryBlock.cs
Common/Cdy.Tag.Common/Common/MarshalFixedMemoryBlock.cs
+2
-2
Common/Cdy.Tag.Common/Common/MarshalMemoryBlock.cs
Common/Cdy.Tag.Common/Common/MarshalMemoryBlock.cs
+8
-5
Common/Cdy.Tag/Interface/IRealDataNotify.cs
Common/Cdy.Tag/Interface/IRealDataNotify.cs
+1
-1
Common/Cdy.Tag/Real/ValueChangedNotifyProcesser.cs
Common/Cdy.Tag/Real/ValueChangedNotifyProcesser.cs
+7
-0
Proxy/DbInRunWebApi/Config/DbWebApiProxy.cfg
Proxy/DbInRunWebApi/Config/DbWebApiProxy.cfg
+1
-1
Proxy/DbInRunWebApi/Properties/launchSettings.json
Proxy/DbInRunWebApi/Properties/launchSettings.json
+1
-2
RunTime/DBHisData/HisQuery/DataFileManager.cs
RunTime/DBHisData/HisQuery/DataFileManager.cs
+3
-2
RunTime/DBHisData/HisQuery/TimeFile/DataFileInfo.cs
RunTime/DBHisData/HisQuery/TimeFile/DataFileInfo.cs
+3
-3
RunTime/DBRuntime.Proxy/Driver/NetTransformDriver.cs
RunTime/DBRuntime.Proxy/Driver/NetTransformDriver.cs
+2
-1
RunTime/DBRuntime.Real/Real/RealEnginer.cs
RunTime/DBRuntime.Real/Real/RealEnginer.cs
+2
-1
RunTime/DBRuntime/Api/RealDataServerProcess.cs
RunTime/DBRuntime/Api/RealDataServerProcess.cs
+41
-13
RunTime/DBRuntime/His/ValueChangedMemoryCacheProcesser.cs
RunTime/DBRuntime/His/ValueChangedMemoryCacheProcesser.cs
+1
-1
未找到文件。
Common/Cdy.Tag.Common/Common/MarshalFixedMemoryBlock.cs
浏览文件 @
8f1ce33f
...
...
@@ -268,7 +268,7 @@ namespace Cdy.Tag
public
void
ReAlloc
(
long
size
)
{
Init
(
size
);
GC
.
Collect
();
//
GC.Collect();
}
...
...
@@ -1232,7 +1232,7 @@ namespace Cdy.Tag
{
Marshal
.
FreeHGlobal
(
mHandles
);
LoggerService
.
Service
.
Erro
(
"MarshalFixedMemoryBlock"
,
Name
+
" Disposed "
);
GC
.
Collect
();
//
GC.Collect();
}
...
...
Common/Cdy.Tag.Common/Common/MarshalMemoryBlock.cs
浏览文件 @
8f1ce33f
...
...
@@ -1840,14 +1840,17 @@ namespace Cdy.Tag
public
virtual
void
Dispose
()
{
//mDataBuffer = null;
foreach
(
var
vv
in
mHandles
)
if
(
mHandles
.
Count
>
0
)
{
Marshal
.
FreeHGlobal
(
vv
);
foreach
(
var
vv
in
mHandles
)
{
Marshal
.
FreeHGlobal
(
vv
);
}
mHandles
.
Clear
();
}
mHandles
.
Clear
();
LoggerService
.
Service
.
Erro
(
"MarshalMemoryBlock"
,
Name
+
" Disposed "
);
// LoggerService.Service.Erro("MarshalMemoryBlock", Name +" Disposed " );
GC
.
Collect
();
//
GC.Collect();
}
///// <summary>
...
...
Common/Cdy.Tag/Interface/IRealDataNotify.cs
浏览文件 @
8f1ce33f
...
...
@@ -23,7 +23,7 @@ namespace Cdy.Tag
/// <param name="name"></param>
/// <param name="valueChanged"></param>
/// <param name="tagRegistor"></param>
void
SubscribeValueChangedForConsumer
(
string
name
,
ValueChangedNotifyProcesser
.
ValueChangedDelegate
valueChanged
,
ValueChangedNotifyProcesser
.
BlockChangedDelegate
blockChanged
,
Func
<
List
<
int
>>
tagRegistor
);
void
SubscribeValueChangedForConsumer
(
string
name
,
ValueChangedNotifyProcesser
.
ValueChangedDelegate
valueChanged
,
ValueChangedNotifyProcesser
.
BlockChangedDelegate
blockChanged
,
Action
BlockChangedNotify
,
Func
<
List
<
int
>>
tagRegistor
);
/// <summary>
/// 取消订购
...
...
Common/Cdy.Tag/Real/ValueChangedNotifyProcesser.cs
浏览文件 @
8f1ce33f
...
...
@@ -131,6 +131,12 @@ namespace Cdy.Tag
///
/// </summary>
public
BlockChangedDelegate
BlockChanged
{
get
;
set
;
}
/// <summary>
///
/// </summary>
public
Action
BlockChangedNotify
{
get
;
set
;
}
/// <summary>
///
/// </summary>
...
...
@@ -308,6 +314,7 @@ namespace Cdy.Tag
}
}
}
BlockChangedNotify
?.
Invoke
();
}
Thread
.
Sleep
(
10
);
...
...
Proxy/DbInRunWebApi/Config/DbWebApiProxy.cfg
浏览文件 @
8f1ce33f
<?xml version="1.0" encoding="utf-8" ?>
<Config>
<ProxyClient
Ip=
"127.0.0.1"
Port=
"14330"
LoginUser=
"Admin"
LoginPassword=
"Admin"
WorkMode=
"
1
"
PollCircle=
"1000"
IsUseStandardHisDataServer=
"false"
/>
<ProxyClient
Ip=
"127.0.0.1"
Port=
"14330"
LoginUser=
"Admin"
LoginPassword=
"Admin"
WorkMode=
"
0
"
PollCircle=
"1000"
IsUseStandardHisDataServer=
"false"
/>
</Config>
\ No newline at end of file
Proxy/DbInRunWebApi/Properties/launchSettings.json
浏览文件 @
8f1ce33f
...
...
@@ -17,9 +17,8 @@
}
},
"DbInRunWebApi"
:
{
"commandName"
:
"
Executable
"
,
"commandName"
:
"
Project
"
,
"launchBrowser"
:
true
,
"launchUrl"
:
"weatherforecast"
,
"environmentVariables"
:
{
"ASPNETCORE_ENVIRONMENT"
:
"Development"
},
...
...
RunTime/DBHisData/HisQuery/DataFileManager.cs
浏览文件 @
8f1ce33f
...
...
@@ -186,10 +186,11 @@ namespace Cdy.Tag
}
else
if
(
e
.
ChangeType
==
System
.
IO
.
WatcherChangeTypes
.
Changed
)
{
LoggerService
.
Service
.
Info
(
"DataFileMananger"
,
"HisDataFile "
+
e
.
Name
+
" is changed & will be processed!"
,
ConsoleColor
.
Cyan
);
var
vtmp
=
new
System
.
IO
.
FileInfo
(
e
.
FullPath
);
lock
(
mLocker
)
{
LoggerService
.
Service
.
Info
(
"DataFileMananger"
,
"HisDataFile "
+
e
.
Name
+
" is changed & will be processed!"
,
ConsoleColor
.
Cyan
);
var
vtmp
=
new
System
.
IO
.
FileInfo
(
e
.
FullPath
);
if
(
vtmp
.
Extension
==
DataFileExtends
)
{
var
vfile
=
CheckAndGetDataFile
(
e
.
Name
);
...
...
RunTime/DBHisData/HisQuery/TimeFile/DataFileInfo.cs
浏览文件 @
8f1ce33f
...
...
@@ -25,7 +25,7 @@ namespace Cdy.Tag
private
bool
mInited
=
false
;
private
object
mLockObj
=
new
object
();
private
static
object
mLockObj
=
new
object
();
private
DateTime
mLastTime
;
...
...
@@ -1757,10 +1757,10 @@ namespace Cdy.Tag
{
DeCompressDataBlockAllValue
(
vv
.
Key
,
vv
.
Value
.
Item1
,
vv
.
Value
.
Item2
,
timetick
,
result
);
}
foreach
(
var
vv
in
data
)
foreach
(
var
vv
in
data
)
{
vv
.
Key
.
Dispose
();
}
data
.
Clear
();
}
...
...
RunTime/DBRuntime.Proxy/Driver/NetTransformDriver.cs
浏览文件 @
8f1ce33f
...
...
@@ -103,6 +103,7 @@ namespace DBRuntime.Proxy
resetEvent
.
WaitOne
();
if
(
mIsClosed
)
break
;
resetEvent
.
Reset
();
int
icount
=
mCachDatas
.
Count
;
while
(
mCachDatas
.
Count
>
0
)
{
// ProcessSingleBufferData(mCachDatas.Dequeue());
...
...
@@ -142,7 +143,6 @@ namespace DBRuntime.Proxy
/// <param name="block"></param>
private
void
ProcessBlockBufferData
(
IByteBuffer
block
)
{
var
realenginer
=
(
ServiceLocator
.
Locator
.
Resolve
<
IRealTagComsumer
>()
as
RealEnginer
);
var
start
=
block
.
ReadInt
();
var
size
=
block
.
ReadInt
();
...
...
@@ -150,6 +150,7 @@ namespace DBRuntime.Proxy
Buffer
.
BlockCopy
(
block
.
Array
,
block
.
ArrayOffset
+
block
.
ReaderIndex
,
realenginer
.
Memory
,
start
,
size
);
block
.
SetReaderIndex
(
block
.
ReaderIndex
+
size
);
block
.
ReleaseBuffer
();
}
/// <summary>
...
...
RunTime/DBRuntime.Real/Real/RealEnginer.cs
浏览文件 @
8f1ce33f
...
...
@@ -3480,7 +3480,7 @@ namespace Cdy.Tag
/// <param name="name"></param>
/// <param name="valueChanged"></param>
/// <param name="tagRegistor"></param>
public
void
SubscribeValueChangedForConsumer
(
string
name
,
ValueChangedNotifyProcesser
.
ValueChangedDelegate
valueChanged
,
ValueChangedNotifyProcesser
.
BlockChangedDelegate
blockchanged
,
Func
<
List
<
int
>>
tagRegistor
)
public
void
SubscribeValueChangedForConsumer
(
string
name
,
ValueChangedNotifyProcesser
.
ValueChangedDelegate
valueChanged
,
ValueChangedNotifyProcesser
.
BlockChangedDelegate
blockchanged
,
Action
BlockChangedNotify
,
Func
<
List
<
int
>>
tagRegistor
)
{
var
re
=
ComsumerValueChangedNotifyManager
.
Manager
.
GetNotifier
(
name
);
if
(
tagRegistor
!=
null
)
...
...
@@ -3507,6 +3507,7 @@ namespace Cdy.Tag
}
re
.
ValueChanged
=
valueChanged
;
re
.
BlockChanged
=
blockchanged
;
re
.
BlockChangedNotify
=
BlockChangedNotify
;
re
.
Start
();
}
...
...
RunTime/DBRuntime/Api/RealDataServerProcess.cs
浏览文件 @
8f1ce33f
...
...
@@ -122,12 +122,14 @@ namespace DBRuntime.Api
{
lock
(
mChangedBlocks
)
mChangedBlocks
.
Enqueue
(
bids
);
if
(!
mIsClosed
)
resetEvent
.
Set
();
}
}),
new
Func
<
List
<
int
>>(()
=>
{
return
null
;
}));
}),()=>
{
if
(!
mIsClosed
)
{
resetEvent
.
Set
();
}
},
new
Func
<
List
<
int
>>(()
=>
{
return
null
;
}));
}
...
...
@@ -207,10 +209,14 @@ namespace DBRuntime.Api
var
cc
=
ServiceLocator
.
Locator
.
Resolve
<
IRealTagComsumer
>()
as
RealEnginer
;
if
(
start
>=
cc
.
Memory
.
Length
)
return
;
var
re
=
BufferManager
.
Manager
.
Allocate
(
ApiFunConst
.
RealDataRequestFun
,
size
);
Buffer
.
BlockCopy
(
cc
.
Memory
,
start
,
re
.
Array
,
re
.
ArrayOffset
+
re
.
WriterIndex
,
size
);
re
.
SetWriterIndex
(
re
.
WriterIndex
+
size
);
Parent
.
AsyncCallback
(
clientId
,
re
);
var
re
=
BufferManager
.
Manager
.
Allocate
(
ApiFunConst
.
RealDataRequestFun
,
0
);
var
ob
=
Unpooled
.
CompositeBuffer
().
AddComponents
(
true
,
re
,
Unpooled
.
WrappedBuffer
(
cc
.
Memory
,
start
,
size
));
//var re = BufferManager.Manager.Allocate(ApiFunConst.RealDataRequestFun, size);
//Buffer.BlockCopy(cc.Memory, start, re.Array, re.ArrayOffset + re.WriterIndex, size);
//re.SetWriterIndex(re.WriterIndex + size);
Parent
.
AsyncCallback
(
clientId
,
ob
);
}
...
...
@@ -234,6 +240,28 @@ namespace DBRuntime.Api
return
re
;
}
private
IByteBuffer
GetBlockSendBuffer2
(
BlockItem
item
)
{
int
start
=
item
.
StartAddress
;
int
size
=
item
.
EndAddress
-
start
;
var
cc
=
ServiceLocator
.
Locator
.
Resolve
<
IRealTagComsumer
>()
as
RealEnginer
;
if
(
start
>=
cc
.
Memory
.
Length
)
return
null
;
//var re = Unpooled.Buffer(10);
//re.WriteByte(ApiFunConst.RealDataPushFun);
var
re
=
BufferManager
.
Manager
.
Allocate
(
ApiFunConst
.
RealDataPushFun
,
9
);
re
.
WriteByte
(
RealDataBlockPush
);
re
.
WriteInt
(
start
);
re
.
WriteInt
(
size
);
return
Unpooled
.
CompositeBuffer
().
AddComponents
(
true
,
re
,
Unpooled
.
WrappedBuffer
(
cc
.
Memory
,
start
,
size
));
// Buffer.BlockCopy(cc.Memory, start, re.Array, re.ArrayOffset + re.WriterIndex, size);
// re.SetWriterIndex(re.WriterIndex + size);
// return re;
}
/// <summary>
///
/// </summary>
...
...
@@ -802,15 +830,15 @@ namespace DBRuntime.Api
if
(
mBlockCallBackRegistorIds
.
Count
>
0
)
{
Stopwatch
sw
=
new
Stopwatch
();
sw
.
Start
();
//
Stopwatch sw = new Stopwatch();
//
sw.Start();
int
count
=
0
;
while
(
mChangedBlocks
.
Count
>
0
)
{
var
vv
=
mChangedBlocks
.
Dequeue
();
if
(
vv
==
null
)
continue
;
var
buffer
=
GetBlockSendBuffer
(
vv
);
var
buffer
=
GetBlockSendBuffer
2
(
vv
);
foreach
(
var
vvb
in
mBlockCallBackRegistorIds
.
ToArray
())
{
// buffer.Retain();
...
...
@@ -822,8 +850,8 @@ namespace DBRuntime.Api
//buffer.ReleaseBuffer();
count
++;
}
sw
.
Stop
();
LoggerService
.
Service
.
Erro
(
"RealDataServerProcess"
,
"推送数据耗时"
+
sw
.
ElapsedMilliseconds
+
" 大小:"
+
count
);
//
sw.Stop();
//
LoggerService.Service.Erro("RealDataServerProcess", "推送数据耗时"+sw.ElapsedMilliseconds+" 大小:"+ count);
}
else
{
...
...
RunTime/DBRuntime/His/ValueChangedMemoryCacheProcesser.cs
浏览文件 @
8f1ce33f
...
...
@@ -115,7 +115,7 @@ namespace Cdy.Tag
mChangedTags
[
vv
]
=
true
;
}
}
}),
null
,
new
Func
<
List
<
int
>>(()
=>
{
return
mTags
.
Keys
.
ToList
();
}));
}),
null
,
null
,
new
Func
<
List
<
int
>>(()
=>
{
return
mTags
.
Keys
.
ToList
();
}));
mRecordThread
=
new
Thread
(
ThreadProcess
);
mRecordThread
.
IsBackground
=
true
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录