mirror of
https://github.com/Expand-sys/CCash
synced 2025-12-19 01:22:14 +11:00
🐎 result_buffer is faster when local
This commit is contained in:
parent
b91e928286
commit
c54f75a909
1 changed files with 42 additions and 1 deletions
|
|
@ -3,6 +3,47 @@
|
||||||
template <bool set_body_flag, bool require_admin>
|
template <bool set_body_flag, bool require_admin>
|
||||||
UserFilter<set_body_flag, require_admin>::UserFilter(Bank &b) : bank(b) {}
|
UserFilter<set_body_flag, require_admin>::UserFilter(Bank &b) : bank(b) {}
|
||||||
|
|
||||||
|
#define time_func_a(f, a, x) \
|
||||||
|
{ \
|
||||||
|
using namespace std::chrono; \
|
||||||
|
uint32_t timer = 0; \
|
||||||
|
for (int i = 0; i < x; ++i) \
|
||||||
|
{ \
|
||||||
|
auto t1 = high_resolution_clock::now().time_since_epoch(); \
|
||||||
|
f; \
|
||||||
|
auto t2 = high_resolution_clock::now().time_since_epoch(); \
|
||||||
|
a; \
|
||||||
|
timer += std::chrono::duration_cast<std::chrono::nanoseconds>((t2 - t1)).count(); \
|
||||||
|
} \
|
||||||
|
std::cout << timer / x << '\n'; \
|
||||||
|
}
|
||||||
|
|
||||||
|
#define time_func(f, x) \
|
||||||
|
{ \
|
||||||
|
using namespace std::chrono; \
|
||||||
|
uint32_t timer = 0; \
|
||||||
|
for (int i = 0; i < x; ++i) \
|
||||||
|
{ \
|
||||||
|
auto t1 = high_resolution_clock::now().time_since_epoch(); \
|
||||||
|
f; \
|
||||||
|
auto t2 = high_resolution_clock::now().time_since_epoch(); \
|
||||||
|
timer += std::chrono::duration_cast<std::chrono::nanoseconds>((t2 - t1)).count(); \
|
||||||
|
} \
|
||||||
|
std::cout << timer / x << '\n'; \
|
||||||
|
}
|
||||||
|
|
||||||
|
#define Op_a(v, name, x, a) \
|
||||||
|
{ \
|
||||||
|
std::cout << name; \
|
||||||
|
time_func_a(v, a, x); \
|
||||||
|
}
|
||||||
|
|
||||||
|
#define Op(v, name, x) \
|
||||||
|
{ \
|
||||||
|
std::cout << name; \
|
||||||
|
time_func(v, x); \
|
||||||
|
}
|
||||||
|
|
||||||
template <bool set_body_flag, bool require_admin>
|
template <bool set_body_flag, bool require_admin>
|
||||||
void UserFilter<set_body_flag, require_admin>::doFilter(const HttpRequestPtr &req,
|
void UserFilter<set_body_flag, require_admin>::doFilter(const HttpRequestPtr &req,
|
||||||
FilterCallback &&fcb,
|
FilterCallback &&fcb,
|
||||||
|
|
@ -14,7 +55,7 @@ void UserFilter<set_body_flag, require_admin>::doFilter(const HttpRequestPtr &re
|
||||||
if (auth_header.substr(0, 6) == "Basic ")
|
if (auth_header.substr(0, 6) == "Basic ")
|
||||||
{
|
{
|
||||||
std::string_view base64_input = auth_header.substr(6);
|
std::string_view base64_input = auth_header.substr(6);
|
||||||
static thread_local char result_buffer[max_name_size + 256]; //(username + ':' + 255 password)
|
char result_buffer[max_name_size + 256]; //(username + ':' + 255 password)
|
||||||
std::memset(result_buffer, 0, max_name_size + 256);
|
std::memset(result_buffer, 0, max_name_size + 256);
|
||||||
size_t new_sz;
|
size_t new_sz;
|
||||||
base64_decode(base64_input.data(), base64_input.size(), result_buffer, &new_sz, 0);
|
base64_decode(base64_input.data(), base64_input.size(), result_buffer, &new_sz, 0);
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue