Opti
Bring test back Removed useless arena, making like 40% perf improv Removed shared Loc
This commit is contained in:
+3
-10
@@ -20,25 +20,18 @@ pub usingnamespace @import("read.zig");
|
||||
pub usingnamespace @import("write.zig");
|
||||
pub usingnamespace @import("dump.zig");
|
||||
|
||||
arena: *std.heap.ArenaAllocator,
|
||||
allocator: std.mem.Allocator,
|
||||
path_to_ZipponDB_dir: []const u8,
|
||||
thread_pool: *Pool, // same pool as the ThreadEngine
|
||||
schema_engine: SchemaEngine = undefined, // This is init after the FileEngine and I attach after. Do I need to init after tho ?
|
||||
|
||||
pub fn init(allocator: std.mem.Allocator, path: []const u8, thread_pool: *Pool) ZipponError!Self {
|
||||
const arena = allocator.create(std.heap.ArenaAllocator) catch return ZipponError.MemoryError;
|
||||
arena.* = std.heap.ArenaAllocator.init(allocator);
|
||||
return Self{
|
||||
.arena = arena,
|
||||
.allocator = arena.allocator(),
|
||||
.allocator = allocator,
|
||||
.path_to_ZipponDB_dir = std.fmt.bufPrint(&path_to_ZipponDB_dir_buffer, "{s}", .{path}) catch return ZipponError.MemoryError,
|
||||
.thread_pool = thread_pool,
|
||||
};
|
||||
}
|
||||
|
||||
pub fn deinit(self: *Self) void {
|
||||
const parent_allocator = self.arena.child_allocator;
|
||||
self.arena.deinit();
|
||||
parent_allocator.destroy(self.arena);
|
||||
}
|
||||
// The allocator is only use to make arena when parsing and everything is deinit after parsing
|
||||
pub fn deinit(_: *Self) void {}
|
||||
|
||||
+5
-3
@@ -42,7 +42,8 @@ pub fn populateFileIndexUUIDMap(
|
||||
) ZipponError!void {
|
||||
var arena = std.heap.ArenaAllocator.init(self.allocator);
|
||||
defer arena.deinit();
|
||||
const allocator = arena.allocator();
|
||||
var safe_allocator = std.heap.ThreadSafeAllocator{ .child_allocator = arena.allocator() };
|
||||
const allocator = safe_allocator.allocator();
|
||||
|
||||
const dir = try self.printOpenDir("{s}/DATA/{s}", .{ self.path_to_ZipponDB_dir, sstruct.name }, .{});
|
||||
const to_parse = try self.allFileIndex(allocator, sstruct.name);
|
||||
@@ -106,7 +107,8 @@ pub fn populateVoidUUIDMap(
|
||||
) ZipponError!void {
|
||||
var arena = std.heap.ArenaAllocator.init(self.allocator);
|
||||
defer arena.deinit();
|
||||
const allocator = arena.allocator();
|
||||
var safe_allocator = std.heap.ThreadSafeAllocator{ .child_allocator = arena.allocator() };
|
||||
const allocator = safe_allocator.allocator();
|
||||
|
||||
const sstruct = try self.schema_engine.structName2SchemaStruct(struct_name);
|
||||
|
||||
@@ -195,7 +197,7 @@ pub fn parseEntities(
|
||||
) ZipponError![]const u8 {
|
||||
var arena = std.heap.ArenaAllocator.init(self.allocator);
|
||||
defer arena.deinit();
|
||||
var safe_allocator = std.heap.ThreadSafeAllocator{ .child_allocator = self.allocator };
|
||||
var safe_allocator = std.heap.ThreadSafeAllocator{ .child_allocator = arena.allocator() };
|
||||
const allocator = safe_allocator.allocator();
|
||||
|
||||
var buff = std.ArrayList(u8).init(entry_allocator);
|
||||
|
||||
+4
-3
@@ -71,12 +71,13 @@ pub fn updateEntities(
|
||||
struct_name: []const u8,
|
||||
filter: ?Filter,
|
||||
map: std.StringHashMap(ValueOrArray),
|
||||
writer: anytype,
|
||||
writer: anytype, // TODO: Stop using writer and use an allocator + toOwnedSlice like parseEntities
|
||||
additional_data: *AdditionalData,
|
||||
) ZipponError!void {
|
||||
var arena = std.heap.ArenaAllocator.init(self.allocator);
|
||||
defer arena.deinit();
|
||||
const allocator = arena.allocator();
|
||||
var safe_allocator = std.heap.ThreadSafeAllocator{ .child_allocator = arena.allocator() };
|
||||
const allocator = safe_allocator.allocator();
|
||||
|
||||
const sstruct = try self.schema_engine.structName2SchemaStruct(struct_name);
|
||||
|
||||
@@ -229,7 +230,7 @@ pub fn deleteEntities(
|
||||
) ZipponError!void {
|
||||
var arena = std.heap.ArenaAllocator.init(self.allocator);
|
||||
defer arena.deinit();
|
||||
var safe_allocator = std.heap.ThreadSafeAllocator{ .child_allocator = self.allocator };
|
||||
var safe_allocator = std.heap.ThreadSafeAllocator{ .child_allocator = arena.allocator() };
|
||||
const allocator = safe_allocator.allocator();
|
||||
|
||||
const sstruct = try self.schema_engine.structName2SchemaStruct(struct_name);
|
||||
|
||||
Reference in New Issue
Block a user