АР
Size: a a a
АР
АР
АР
АР
АР
АР
D
Storage::StorageRecord* find(std::string_view name) constи огромный процент процессорного времени съедает __cxa_throw. Хотя в действительности исключения из неё не кидается ни разу во время выполнения. Почему это работает так медленно?
{
auto it = m_inner_scopes.find(crc32::create(name.data()));
if (it == m_inner_scopes.end() || it->second.depth > m_scope_depth)
return nullptr;
return &it->second;
}
std::shared_ptr lookup(std::string_view name) const
{
auto found_data = find(name);
if (found_data)
return found_data->payload;
else
throw SemanticError("Variable not found: " + std::string(name));
}
D
АР
SS
break __cxa_throw, раз она выполняетсяD
D
SS
SS
SH
D
SS
АР
SH
SH