auto commit
This commit is contained in:
@@ -61,28 +61,41 @@ namespace Yitter.OrgSystem.TestA
|
||||
}
|
||||
}
|
||||
|
||||
[DllImport("yitidgenc.dll", CallingConvention = CallingConvention.StdCall)]
|
||||
[DllImport("yitidgenc.dll", CallingConvention = CallingConvention.Cdecl)]
|
||||
public static extern long NextId();
|
||||
|
||||
[DllImport("yitidgenc.dll", CallingConvention = CallingConvention.StdCall)]
|
||||
public static extern void SetWorkerId(int workerId);
|
||||
[DllImport("yitidgenc.dll", CallingConvention = CallingConvention.Cdecl)]
|
||||
public static extern void SetWorkerId(uint workerId);
|
||||
|
||||
[DllImport("yitidgenc.dll", CallingConvention = CallingConvention.Cdecl)]
|
||||
public static extern int TestId();
|
||||
|
||||
private static void CallDll()
|
||||
{
|
||||
int i = 0;
|
||||
long id = 0;
|
||||
DateTime start = DateTime.Now;
|
||||
|
||||
SetWorkerId(1);
|
||||
|
||||
while (i < 50000)
|
||||
try
|
||||
{
|
||||
id = NextId();
|
||||
i++;
|
||||
|
||||
int i = 0;
|
||||
long id = 0;
|
||||
DateTime start = DateTime.Now;
|
||||
|
||||
var ids = TestId();
|
||||
|
||||
//SetWorkerId(1);
|
||||
|
||||
while (i < 50000)
|
||||
{
|
||||
id = NextId();
|
||||
i++;
|
||||
}
|
||||
DateTime end = DateTime.Now;
|
||||
Console.WriteLine("id:" + id);
|
||||
Console.WriteLine($"+++++++++++C# call rust dll, gen 5W, total: {(end - start).TotalMilliseconds} ms");
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Console.WriteLine(ex.Message);
|
||||
}
|
||||
DateTime end = DateTime.Now;
|
||||
Console.WriteLine("id:" + id);
|
||||
Console.WriteLine($"+++++++++++C# call rust dll, gen 5W, total: {(end - start).TotalMilliseconds} ms");
|
||||
}
|
||||
|
||||
private static void RunSingle()
|
||||
|
||||
@@ -8,7 +8,7 @@ set(CMAKE_C_STANDARD 11)
|
||||
aux_source_directory(. DIR_SRCS)
|
||||
add_subdirectory(idgen)
|
||||
|
||||
##编译动态库
|
||||
#编译动态库
|
||||
#set(LIB_SRC YitIdHelper.h YitIdHelper.c)
|
||||
#add_library(YitIdGenLib SHARED ${LIB_SRC})
|
||||
#target_link_libraries(YitIdGenLib idgen)
|
||||
|
||||
@@ -11,12 +11,19 @@ extern void SetIdGenerator(IdGeneratorOptions options) {
|
||||
SetOptions(options);
|
||||
}
|
||||
|
||||
extern void SetWorker(uint32_t workerId) {
|
||||
extern void SetWorkerId(uint32_t workerId) {
|
||||
IdGeneratorOptions options = BuildIdGenOptions(workerId);
|
||||
SetIdGenerator(options);
|
||||
SetOptions(options);
|
||||
//SetIdGenerator(options);
|
||||
}
|
||||
|
||||
extern uint64_t NextId() {
|
||||
return GetIdGenInstance()->NextId();
|
||||
IdGenerator *generator = GetIdGenInstance();
|
||||
uint64_t id = generator->NextId();
|
||||
free(generator);
|
||||
return id;
|
||||
}
|
||||
|
||||
extern uint64_t TestId() {
|
||||
return 123456;
|
||||
}
|
||||
|
||||
@@ -5,11 +5,17 @@
|
||||
#pragma once
|
||||
|
||||
#include "idgen/IdGenOptions.h"
|
||||
#include "idgen/common.h"
|
||||
|
||||
|
||||
__declspec(dllexport) void __stdcall SetIdGenerator(IdGeneratorOptions options);
|
||||
TAP_DLLEXPORT
|
||||
extern void SetIdGenerator(IdGeneratorOptions options);
|
||||
|
||||
__declspec(dllexport) void __stdcall SetWorker(uint32_t workerId);
|
||||
TAP_DLLEXPORT
|
||||
extern void SetWorkerId(uint32_t workerId);
|
||||
|
||||
__declspec(dllexport) uint64_t __stdcall NextId();
|
||||
TAP_DLLEXPORT
|
||||
extern uint64_t NextId();
|
||||
|
||||
TAP_DLLEXPORT
|
||||
extern uint64_t TestId() ;
|
||||
|
||||
13
C/source/idgen/common.h
Normal file
13
C/source/idgen/common.h
Normal file
@@ -0,0 +1,13 @@
|
||||
//
|
||||
// Created by zhouzj on 2021/3/28.
|
||||
//
|
||||
#pragma once
|
||||
|
||||
#ifdef _WIN32
|
||||
#define TAP_CDECL __cdecl
|
||||
#define TAP_DLLEXPORT __declspec(dllexport)
|
||||
#else
|
||||
#define TAP_CDECL
|
||||
#define TAP_DLLEXPORT __declspec(dllexport)
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user