1
0
mirror of synced 2025-12-16 10:08:09 +08:00

auto commit

This commit is contained in:
yitter
2021-03-28 14:13:40 +08:00
parent 5b4daa3b45
commit ffd831cd16
5 changed files with 61 additions and 22 deletions

View File

@@ -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()

View File

@@ -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)

View File

@@ -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;
}

View File

@@ -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
View 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