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();
|
public static extern long NextId();
|
||||||
|
|
||||||
[DllImport("yitidgenc.dll", CallingConvention = CallingConvention.StdCall)]
|
[DllImport("yitidgenc.dll", CallingConvention = CallingConvention.Cdecl)]
|
||||||
public static extern void SetWorkerId(int workerId);
|
public static extern void SetWorkerId(uint workerId);
|
||||||
|
|
||||||
|
[DllImport("yitidgenc.dll", CallingConvention = CallingConvention.Cdecl)]
|
||||||
|
public static extern int TestId();
|
||||||
|
|
||||||
private static void CallDll()
|
private static void CallDll()
|
||||||
{
|
{
|
||||||
int i = 0;
|
try
|
||||||
long id = 0;
|
|
||||||
DateTime start = DateTime.Now;
|
|
||||||
|
|
||||||
SetWorkerId(1);
|
|
||||||
|
|
||||||
while (i < 50000)
|
|
||||||
{
|
{
|
||||||
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()
|
private static void RunSingle()
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ set(CMAKE_C_STANDARD 11)
|
|||||||
aux_source_directory(. DIR_SRCS)
|
aux_source_directory(. DIR_SRCS)
|
||||||
add_subdirectory(idgen)
|
add_subdirectory(idgen)
|
||||||
|
|
||||||
##编译动态库
|
#编译动态库
|
||||||
#set(LIB_SRC YitIdHelper.h YitIdHelper.c)
|
#set(LIB_SRC YitIdHelper.h YitIdHelper.c)
|
||||||
#add_library(YitIdGenLib SHARED ${LIB_SRC})
|
#add_library(YitIdGenLib SHARED ${LIB_SRC})
|
||||||
#target_link_libraries(YitIdGenLib idgen)
|
#target_link_libraries(YitIdGenLib idgen)
|
||||||
|
|||||||
@@ -11,12 +11,19 @@ extern void SetIdGenerator(IdGeneratorOptions options) {
|
|||||||
SetOptions(options);
|
SetOptions(options);
|
||||||
}
|
}
|
||||||
|
|
||||||
extern void SetWorker(uint32_t workerId) {
|
extern void SetWorkerId(uint32_t workerId) {
|
||||||
IdGeneratorOptions options = BuildIdGenOptions(workerId);
|
IdGeneratorOptions options = BuildIdGenOptions(workerId);
|
||||||
SetIdGenerator(options);
|
SetOptions(options);
|
||||||
|
//SetIdGenerator(options);
|
||||||
}
|
}
|
||||||
|
|
||||||
extern uint64_t NextId() {
|
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
|
#pragma once
|
||||||
|
|
||||||
#include "idgen/IdGenOptions.h"
|
#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