自定义内存分配池

This commit is contained in:
2026-07-29 18:08:57 +08:00
parent 5a3511bb58
commit d943d82554
122 changed files with 3602 additions and 1215 deletions
+14 -14
View File
@@ -4,13 +4,14 @@
#include <QThread>
#include <cmath>
#include <memory>
#include <thread>
#include "../Renderive/Axis/Axis.h"
#include "../Renderive/Axis/Frequency_Axis.h"
#include "../Renderive/architecture/Plot.h"
#include "../Renderive/plottable/Spectrum.h"
namespace {
QVector<double> make_spectrum_data(int size, int frame) {
QVector<double> data(size);
std::vector<double> make_spectrum_data(int size, int frame) {
std::vector<double> data(size);
for (int i = 0; i < size; ++i)
data[i] = -80.0 + 20.0 * std::sin((double)(i + frame) * 0.03);
return data;
@@ -65,18 +66,17 @@ void stress_plot_destroy_with_pending_tasks() {
process_events(20);
}
}
void stress_reinit_rejected() {
renderive::Plot plot_a;
renderive::Plot plot_b;
plot_a.init();
plot_b.init();
auto axis_node_a = plot_a.create_renderable_node(plot_a.get_root_renderable(), "Axis_Renderable_A");
auto axis_node_b = plot_b.create_renderable_node(plot_b.get_root_renderable(), "Axis_Renderable_B");
auto axis = renderive::Axis::Builder(axis_node_a, Qt::Horizontal).set_pixel_size(100).set_coord_range({0.0, 1.0}).build();
try {
axis->init(axis_node_b);
void stress_release_renderable_after_plot_destroy() {
std::shared_ptr<renderive::Renderable> survivor;
{
renderive::Plot plot;
plot.init();
survivor = plot.create_renderable_node(plot.get_root_renderable(), "Survivor");
}
catch (...) {}
std::thread release_thread([owner = std::move(survivor)]() mutable {
owner.reset();
});
release_thread.join();
}
}
int main(int argc, char** argv) {
@@ -84,7 +84,7 @@ int main(int argc, char** argv) {
renderive::start_render_scheduler();
stress_remove_local_cache_renderable();
stress_plot_destroy_with_pending_tasks();
stress_reinit_rejected();
stress_release_renderable_after_plot_destroy();
process_events(250);
return 0;
}