From 8fc866309f4a03c157a329cbfdb6d9eb9150d9fe Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Sun, 17 Jun 2012 21:20:11 +0000 Subject: Resurrect profiling code. git-svn-id: svn://localhost/ardour2/branches/3.0@12749 d708f5d6-7413-0410-9779-e7cbd77b26cf --- libs/ardour/run-profiling.sh | 12 +- libs/ardour/test/profiling/runpc.cc | 62 +- .../profiling/sessions/32tracks/32tracks.ardour | 284 ++++----- .../sessions/32tracks/32tracks.ardour.bak | 688 +++++++++++++++------ .../test/profiling/sessions/32tracks/instant.xml | 4 +- libs/ardour/test/test_needing_session.cc | 61 +- libs/ardour/test/test_util.cc | 69 ++- libs/ardour/test/test_util.h | 4 + libs/ardour/wscript | 2 + 9 files changed, 696 insertions(+), 490 deletions(-) diff --git a/libs/ardour/run-profiling.sh b/libs/ardour/run-profiling.sh index 3f2148fbed..f490080446 100644 --- a/libs/ardour/run-profiling.sh +++ b/libs/ardour/run-profiling.sh @@ -8,16 +8,22 @@ if [ ! -f './tempo.cc' ]; then exit 1; fi -srcdir=`pwd` -cd ../../build +cd ../.. +top=`pwd` +cd build libs='libs' export LD_LIBRARY_PATH=$libs/audiographer:$libs/vamp-sdk:$libs/surfaces:$libs/surfaces/control_protocol:$libs/ardour:$libs/midi++2:$libs/pbd:$libs/rubberband:$libs/soundtouch:$libs/gtkmm2ext:$libs/appleutility:$libs/taglib:$libs/evoral:$libs/evoral/src/libsmf:$libs/timecode:/usr/local/lib:/usr/local/lib64:$LD_LIBRARY_PATH +export ARDOUR_CONFIG_PATH=$top:$top/gtk2_ardour:$libs/..:$libs/../gtk2_ardour export ARDOUR_PANNER_PATH=$libs/panners/2in2out:$libs/panners/1in2out:$libs/panners/vbap +export ARDOUR_SURFACES_PATH=$libs/surfaces/osc:$libs/surfaces/generic_midi:$libs/surfaces/tranzport:$libs/surfaces/powermate:$libs/surfaces/mackie +export ARDOUR_MCP_PATH="../mcp" +export ARDOUR_DLL_PATH=$libs +export ARDOUR_DATA_PATH=$top/gtk2_ardour:$top/build/gtk2_ardour:. -export LD_PRELOAD=/home/carl/src/libfakejack/libjack.so +# export LD_PRELOAD=/home/carl/src/libfakejack/libjack.so session='32tracks' if [ "$1" == "--debug" ]; then diff --git a/libs/ardour/test/profiling/runpc.cc b/libs/ardour/test/profiling/runpc.cc index 90f9136e23..ef5d322df2 100644 --- a/libs/ardour/test/profiling/runpc.cc +++ b/libs/ardour/test/profiling/runpc.cc @@ -5,49 +5,12 @@ #include "pbd/enumwriter.h" #include "ardour/session.h" #include "ardour/audioengine.h" +#include "test_util.h" using namespace std; using namespace PBD; using namespace ARDOUR; -class TestReceiver : public Receiver -{ -protected: - void receive (Transmitter::Channel chn, const char * str) { - const char *prefix = ""; - - switch (chn) { - case Transmitter::Error: - prefix = ": [ERROR]: "; - break; - case Transmitter::Info: - /* ignore */ - return; - case Transmitter::Warning: - prefix = ": [WARNING]: "; - break; - case Transmitter::Fatal: - prefix = ": [FATAL]: "; - break; - case Transmitter::Throw: - /* this isn't supposed to happen */ - abort (); - } - - /* note: iostreams are already thread-safe: no external - lock required. - */ - - cout << prefix << str << endl; - - if (chn == Transmitter::Fatal) { - exit (9); - } - } -}; - -TestReceiver test_receiver; - int main (int argc, char* argv[]) { @@ -55,29 +18,18 @@ main (int argc, char* argv[]) cerr << argv[0] << ": \n"; exit (EXIT_FAILURE); } - - string const test_session_path = string_compose ("../libs/ardour/test/profiling/sessions/%1", argv[1]); - string const test_session_snapshot = string_compose ("%1.ardour", argv[1]); - - init (false, true); - SessionEvent::create_per_thread_pool ("test", 512); - - test_receiver.listen_to (error); - test_receiver.listen_to (info); - test_receiver.listen_to (fatal); - test_receiver.listen_to (warning); - AudioEngine* engine = new AudioEngine ("test", ""); - engine->start (); - MIDI::Manager::create (engine->jack ()); + ARDOUR::init (false, true); - Session* session = new Session (*engine, test_session_path, test_session_snapshot); - engine->set_session (session); + Session* session = load_session ( + string_compose ("../libs/ardour/test/profiling/sessions/%1", argv[1]), + string_compose ("%1.ardour", argv[1]) + ); cout << "INFO: " << session->get_routes()->size() << " routes.\n"; for (int i = 0; i < 32768; ++i) { - session->process (64); + session->process (session->engine().frames_per_cycle ()); } return 0; diff --git a/libs/ardour/test/profiling/sessions/32tracks/32tracks.ardour b/libs/ardour/test/profiling/sessions/32tracks/32tracks.ardour index 43b597c17b..6794c67bc9 100644 --- a/libs/ardour/test/profiling/sessions/32tracks/32tracks.ardour +++ b/libs/ardour/test/profiling/sessions/32tracks/32tracks.ardour @@ -1,11 +1,10 @@ - +