This was achieved by running maintainers/buildtime_report.sh on the build directory of a meson build, then asking "why the heck is json eating our build times", and strategically moving the json using bits out of widely included headers. It turns out that putting literally any metrics whatsoever into the build had immediate and predictable results. Results are 1382.5s frontend time -> 1175.4s frontend time, back end time approximately invariant. Related: https://git.lix.systems/lix-project/lix/issues/159 Change-Id: I7edea95c8536203325c8bb4dae5f32d727a21b2d
21 lines
530 B
C++
21 lines
530 B
C++
#pragma once
|
|
///@file
|
|
|
|
#include <nlohmann/json.hpp>
|
|
#include "config.hh"
|
|
#include "json-utils.hh"
|
|
// Required for instances of to_json and from_json for ExperimentalFeature
|
|
#include "experimental-features-json.hh"
|
|
|
|
namespace nix {
|
|
template<typename T>
|
|
std::map<std::string, nlohmann::json> BaseSetting<T>::toJSONObject() const
|
|
{
|
|
auto obj = AbstractSetting::toJSONObject();
|
|
obj.emplace("value", value);
|
|
obj.emplace("defaultValue", defaultValue);
|
|
obj.emplace("documentDefault", documentDefault);
|
|
return obj;
|
|
}
|
|
}
|