Open main menu

CDOT Wiki β

Changes

DPS915 C U D A B O Y S

86,862 bytes removed, 12:57, 8 December 2015
Assignment 3
== Progress ==
==Assignment 1 == === <span style="color: green">&#x2713; Profile 0: File Encryption</span> ======= Description ====This piece of software takes a file and ecrypts it one of 4 ways:# Byte Inversion# Byte Cycle# Xor Cipher# RC4 Cipher  Inside the byteCipher method, exists a for loop that could use optimization. Within this loop specifically, the lines that call the <code>cycle</code> and <code>rc4_output</code> functions are the ones that are taking the longest time to execute: for (int i = 0; i < bufferSize; i++){ // going over every byte in the file switch (mode) { case 0: // inversion buffer[i] = ~buffer[i]; break; case 1: // cycle buffer [i] = cycle (buffer [i]); break; case 2: // RC4 buffer [i] = buffer [i] ^ rc4_output(); break; } } Here is what these functions <code>cycle</code> and <code>rc4_output</code> functions look like: char cycle (char value) { int leftMask = 170; int rightMask = 85; int iLeft = value & leftMask; int iRight = value & rightMask; iLeft = Assignment iLeft >> 1; iRight = iRight << 1; return iLeft | iRight; }  unsigned char rc4_output() { unsigned char temp; i = (i + 1) & 0xFF; j = (j + S[i]) & 0xFF; temp = S[i]; S[i] = S[j]; S[j] = temp; return S[(S[i] + S[j]) & 0xFF]; }  We need to change these two functions so they are added to the CUDA device as "device functions". ==== Profiling on Linux ==== The following test runs were performed on the following Virtual Machine:* CentOS 7* i7-3820 @ 3.6 GHz* 2GB DDR3* gcc version 4.8.3  Using compiler settings: g++ -c -O2 -g -pg -std=c++11 encFile.cpp    '''RC4 Cipher - 283 MB mp3 File''' [root@jr-net-cent7 aes]# time ./encFile 4 /home/johny/aes/music.mp3 /home/johny/aes/music.mp3 * * * File Protector * * * Mode 4: RC4 cipher Please enter the RC4 key (8 chars min) testing123 The password is: testing123 Beginning encryption Completed: 100% Cipher completed. Program terminated.  real 0m6.758s user 0m3.551s sys 0m0.068s  Flat profile: Each sample counts as 0.01 seconds. % cumulative self self total time seconds seconds calls ms/call ms/call name 84.05 1.70 1.70 296271519 0.00 0.00 rc4_output() 13.39 1.97 0.27 byteCipher(int, std::string) 2.73 2.02 0.06 1 55.09 55.09 rc4_init(unsigned char*, unsigned int) 0.00 2.02 0.00 1 0.00 0.00 _GLOBAL__sub_I_S As we can see the <code>rc4_output</code> and <code>byteCipher</code> functions take up most of the processing time.   '''RC4 Cipher - 636 MB iso File''' [root@jr-net-cent7 aes]# time ./encFile 4 /home/johny/aes/cent.iso /home/johny/aes/cent.iso * * * File Protector * * * Mode 4: RC4 cipher Please enter the RC4 key (8 chars min) testing123 The password is: testing123 Beginning encryption Completed: 100% Cipher completed. Program terminated.  real 0m10.293s user 0m8.235s sys 0m0.312s  Flat profile: Each sample counts as 0.01 seconds. % cumulative self self total time seconds seconds calls ms/call ms/call name 74.86 3.59 3.59 666894336 0.00 0.00 rc4_output() 23.21 4.70 1.11 byteCipher(int, std::string) 2.09 4.80 0.10 1 100.16 100.16 rc4_init(unsigned char*, unsigned int) 0.00 4.80 0.00 1 0.00 0.00 _GLOBAL__sub_I_S '''RC4 Cipher - 789 MB iso File'''  [root@jr-net-cent7 aes]# time ./encFile 4 /home/johny/aes/xu.iso /home/johny/aes/xu.iso * * * File Protector * * * Mode 4: RC4 cipher Please enter the RC4 key (8 chars min) testing123 The password is: testing123 Beginning encryption Completed: 100% Cipher completed. Program terminated.  real 0m12.566s user 0m10.170s sys 0m0.228s  Flat profile: Each sample counts as 0.01 seconds. % cumulative self self total time seconds seconds calls ms/call ms/call name 75.51 4.40 4.40 827326464 0.00 0.00 rc4_output() 23.02 5.74 1.34 byteCipher(int, std::string) 1.63 5.84 0.10 1 95.15 95.15 rc4_init(unsigned char*, unsigned int) 0.00 5.84 0.00 1 0.00 0.00 _GLOBAL__sub_I_S  ==== Profiling on Windows ==== The following test runs were performed on the following Machine:* Windows 10* i7-4790k @ 4GHz* 16GB DDR3* Visual Studio 2013  '''RC4 Cipher - 283 MB mp3 File''' [[File:winmp3.png]]  '''RC4 Cipher - 636 MB iso File''' [[File:wincent.png]]  '''RC4 Cipher - 789 MB iso File''' [[File:winxu.png]]   '''Byte Cycle - 283 MB mp3 File''' [[File:winmp32.png]]  '''Byte Cycle - 636 MB iso File''' [[File:wincent2.png]]  '''Byte Cycle - 789 MB iso File''' [[File:winxu2.png]] === <span style="color: red">&#x2717; Profile 1 : PI Approximation</span> ===
== <span style="color: red">&#x2717;Profile 1: PI Approximation</span> ==
* Sample run:
operation - took - 47.1807910000 secs
3.1415537704
operation - took - 47.1643760000 secs 3.1415782660 operation - took - 47.1696770000 secs 3.1415815554 operation - took - 47.2050050000 secs
real 3m33.129s
user 3m32.925s
0.00 106.93 0.00 1 0.00 0.00 _GLOBAL__sub_I__Z10reportTimePKcNSt6chrono8durationIlSt5ratioILl1ELl1000000EEEE
=== <span style="color: greenred">&#x2713x2717; Profile 2: Wave Form Generator</span> === <s>'''This is the program we selected to optimize. It's a great candidate because it has 2 primary functions that have a few for loops in them. One of the functions reads an Mp3 file and writes wave data to a file -- this function takes quite a bit of time to execute. The other function actually takes this data and converts it to a view-able sound wave image. Both functions would benefit greatly from the extra processing power that a GPU provides: mp3 read/decode time would be greatly reduced.'''</s>  'This piece of code is too complex and requires a linux environment to run. Please see Profile 0 for the one we are currently using.'
* Sample Run
0.00 7.29 0.00 7272 0.00 0.00 BstdRead
0.00 7.29 0.00 7271 0.00 0.00 BstdFileEofP
0.00 7.29 0.00 176 0.00 0.00 __gnu_cxx::__normal_iterator<std::string const*, std::vector<std::string, std::allocator<std::string> > >::base() const 0.00 7.29 0.00 144 0.00 0.00 std::string* std::__addressof<std::string>(std::string&) 0.00 7.29 0.00 130 0.00 0.00 std::less<std::string>::operator()(std::string const&, std::string const&) const 0.00 7.29 0.00 130 0.00 0.00 bool std::operator< <char, std::char_traits<char>, std::allocator<char> >(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) 0.00 7.29 0.00 129 0.00 0.00 std::_Select1st<std::pair<std::string const, boost::program_options::variable_value> >::operator()(std::pair<std::string const, boost::program_options::variable_value> const&) const 0.00 7.29 0.00 117 0.00 0.00 std::vector<short, std::allocator<short> >::size() const 0.00 7.29 0.00 107 0.00 0.00 std::_Vector_base<std::string, std::allocator<std::string> >::_M_get_Tp_allocator() 0.00 7.29 0.00 99 0.00 0.00 std::_Rb_tree<std::string, std::pair<std::string const, boost::program_options::variable_value>, std::_Select1st<std::pair<std::string const, boost::program_options::variable_value> >, std::less<std::string>, std::allocator<std::pair<std::string const, boost::program_options::variable_value> > >::_S_key(std::_Rb_tree_node<std::pair<std::string const, boost::program_options::variable_value> > const*) 0.00 7.29 0.00 99 0.00 0.00 std::_Rb_tree<std::string, std::pair<std::string const, boost::program_options::variable_value>, std::_Select1st<std::pair<std::string const, boost::program_options::variable_value> >, std::less<std::string>, std::allocator<std::pair<std::string const, boost::program_options::variable_value> > >::_S_value(std::_Rb_tree_node<std::pair<std::string const, boost::program_options::variable_value> > const*) 0.00 7.29 0.00 97 0.00 0.00 std::vector<std::string, std::allocator<std::string> >::size() const 0.00 7.29 0.00 92 0.00 0.00 __gnu_cxx::__normal_iterator<std::string const*, std::vector<std::string, std::allocator<std::string> > >::__normal_iterator(std::string const* const&) 0.00 7.29 0.00 91 0.00 0.00 __gnu_cxx::new_allocator<std::string>::~new_allocator() 0.00 7.29 0.00 91 0.00 0.00 std::allocator<std::string>::~allocator() 0.00 7.29 0.00 86 0.00 0.00 std::string&& std::forward<std::string>(std::remove_reference<std::string>::type&) 0.00 7.29 0.00 86 0.00 0.00 void std::_Destroy<std::string>(std::string*) 0.00 7.29 0.00 85 0.00 0.00 std::_Rb_tree_const_iterator<std::pair<std::string const, boost::program_options::variable_value> >::_Rb_tree_const_iterator(std::_Rb_tree_node<std::pair<std::string const, boost::program_options::variable_value> > const*) 0.00 7.29 0.00 84 0.00 0.00 bool __gnu_cxx::operator!=<std::string const*, std::vector<std::string, std::allocator<std::string> > >(__gnu_cxx::__normal_iterator<std::string const*, std::vector<std::string, std::allocator<std::string> > > const&, __gnu_cxx::__normal_iterator<std::string const*, std::vector<std::string, std::allocator<std::string> > > const&) 0.00 7.29 0.00 80 0.00 0.00 __gnu_cxx::new_allocator<std::string>::new_allocator(__gnu_cxx::new_allocator<std::string> const&) 0.00 7.29 0.00 80 0.00 0.00 std::allocator<std::string>::allocator(std::allocator<std::string> const&) 0.00 7.29 0.00 69 0.00 0.00 __gnu_cxx::new_allocator<short>::max_size() const 0.00 7.29 0.00 69 0.00 0.00 std::_Iter_base<short*, false>::_S_base(short*) 0.00 7.29 0.00 69 0.00 0.00 std::_Niter_base<short*>::iterator_type std::__niter_base<short*>(short*) 0.00 7.29 0.00 65 0.00 0.00 boost::detail::atomic_exchange_and_add(int*, int) 0.00 7.29 0.00 61 0.00 0.00 std::_Rb_tree<std::string, std::pair<std::string const, boost::program_options::variable_value>, std::_Select1st<std::pair<std::string const, boost::program_options::variable_value> >, std::less<std::string>, std::allocator<std::pair<std::string const, boost::program_options::variable_value> > >::_S_left(std::_Rb_tree_node_base const*) 0.00 7.29 0.00 60 0.00 0.00 boost::any::~any() 0.00 7.29 0.00 59 0.00 0.00 void std::_Destroy_aux<false>::__destroy<std::string*>(std::string*, std::string*) 0.00 7.29 0.00 59 0.00 0.00 std::_Vector_base<std::string, std::allocator<std::string> >::_M_deallocate(std::string*, unsigned long) 0.00 7.29 0.00 59 0.00 0.00 void std::_Destroy<std::string*>(std::string*, std::string*) 0.00 7.29 0.00 59 0.00 0.00 void std::_Destroy<std::string*, std::string>(std::string*, std::string*, std::allocator<std::string>&) 0.00 7.29 0.00 56 0.00 0.00 __gnu_cxx::new_allocator<std::string>::max_size() const 0.00 7.29 0.00 56 0.00 0.00 std::_Vector_base<std::string, std::allocator<std::string> >::_M_get_Tp_allocator() const 0.00 7.29 0.00 55 0.00 0.00 std::_Rb_tree<std::string, std::pair<std::string const, boost::program_options::variable_value>, std::_Select1st<std::pair<std::string const, boost::program_options::variable_value> >, std::less<std::string>, std::allocator<std::pair<std::string const, boost::program_options::variable_value> > >::end() const 0.00 7.29 0.00 54 0.00 0.00 std::remove_reference<boost::any::placeholder*&>::type&& std::move<boost::any::placeholder*&>(boost::any::placeholder*&) 0.00 7.29 0.00 51 0.00 0.00 std::_Vector_base<std::string, std::allocator<std::string> >::_Vector_impl::~_Vector_impl() 0.00 7.29 0.00 51 0.00 0.00 std::_Vector_base<std::string, std::allocator<std::string> >::~_Vector_base() 0.00 7.29 0.00 51 0.00 0.00 std::vector<std::string, std::allocator<std::string> >::~vector() 0.00 7.29 0.00 49 0.00 0.00 __gnu_cxx::new_allocator<std::string>::deallocate(std::string*, unsigned long) 0.00 7.29 0.00 48 0.00 0.00 __gnu_cxx::__normal_iterator<std::string const*, std::vector<std::string, std::allocator<std::string> > >::operator*() const 0.00 7.29 0.00 48 0.00 0.00 std::vector<std::string, std::allocator<std::string> >::begin() const 0.00 7.29 0.00 48 0.00 0.00 std::_Vector_base<std::string, std::allocator<std::string> >::_M_allocate(unsigned long) 0.00 7.29 0.00 47 0.00 0.00 std::_Vector_base<short, std::allocator<short> >::_M_get_Tp_allocator() 0.00 7.29 0.00 46 0.00 0.00 std::_Vector_base<short, std::allocator<short> >::_M_get_Tp_allocator() const 0.00 7.29 0.00 46 0.00 0.00 std::move_iterator<short*>::base() const 0.00 7.29 0.00 46 0.00 0.00 std::vector<short, std::allocator<short> >::max_size() const 0.00 7.29 0.00 46 0.00 0.00 std::_Iter_base<std::move_iterator<short*>, true>::_S_base(std::move_iterator<short*>) 0.00 7.29 0.00 46 0.00 0.00 std::move_iterator<short*>::move_iterator(short*) 0.00 7.29 0.00 46 0.00 0.00 std::enable_if<std::allocator_traits<std::allocator<short> >::__maxsize_helper<std::allocator<short> const>::value, unsigned long>::type std::allocator_traits<std::allocator<short> >::_S_max_size<std::allocator<short> const>(std::allocator<short> const&) 0.00 7.29 0.00 46 0.00 0.00 std::allocator_traits<std::allocator<short> >::max_size(std::allocator<short> const&) 0.00 7.29 0.00 46 0.00 0.00 std::_Miter_base<std::move_iterator<short*> >::iterator_type std::__miter_base<std::move_iterator<short*> >(std::move_iterator<short*>) 0.00 7.29 0.00 46 0.00 0.00 std::move_iterator<short*> std::__make_move_if_noexcept_iterator<short*, std::move_iterator<short*> >(short*) 0.00 7.29 0.00 44 0.00 0.00 __gnu_cxx::__normal_iterator<std::string const*, std::vector<std::string, std::allocator<std::string> > >::operator++() 0.00 7.29 0.00 44 0.00 0.00 std::move_iterator<std::string*>::base() const 0.00 7.29 0.00 44 0.00 0.00 std::vector<std::string, std::allocator<std::string> >::end() const 0.00 7.29 0.00 44 0.00 0.00 void std::_Construct<std::string, std::string const&>(std::string*, std::string const&) 0.00 7.29 0.00 44 0.00 0.00 std::string const& std::forward<std::string const&>(std::remove_reference<std::string const&>::type&) 0.00 7.29 0.00 40 0.00 0.00 __gnu_cxx::new_allocator<std::string>::allocate(unsigned long, void const*) 0.00 7.29 0.00 40 0.00 0.00 __gnu_cxx::__alloc_traits<std::allocator<std::string> >::_S_select_on_copy(std::allocator<std::string> const&) 0.00 7.29 0.00 40 0.00 0.00 std::_Vector_base<std::string, std::allocator<std::string> >::_Vector_impl::_Vector_impl(std::allocator<std::string> const&) 0.00 7.29 0.00 40 0.00 0.00 std::_Vector_base<std::string, std::allocator<std::string> >::_M_create_storage(unsigned long) 0.00 7.29 0.00 40 0.00 0.00 std::_Vector_base<std::string, std::allocator<std::string> >::_Vector_base(unsigned long, std::allocator<std::string> const&) 0.00 7.29 0.00 40 0.00 0.00 std::allocator_traits<std::allocator<std::string> >::select_on_container_copy_construction(std::allocator<std::string> const&) 0.00 7.29 0.00 40 0.00 0.00 std::enable_if<!std::allocator_traits<std::allocator<std::string> >::__select_helper<std::allocator<std::string> const>::value, std::allocator<std::string> const>::type std::allocator_traits<std::allocator<std::string> >::_S_select<std::allocator<std::string> const>(std::allocator<std::string> const&) 0.00 7.29 0.00 40 0.00 0.00 std::string* std::__uninitialized_copy<false>::__uninit_copy<__gnu_cxx::__normal_iterator<std::string const*, std::vector<std::string, std::allocator<std::string> > >, std::string*>(__gnu_cxx::__normal_iterator<std::string const*, std::vector<std::string, std::allocator<std::string> > >, __gnu_cxx::__normal_iterator<std::string const*, std::vector<std::string, std::allocator<std::string> > >, std::string*) 0.00 7.29 0.00 40 0.00 0.00 std::vector<std::string, std::allocator<std::string> >::vector(std::vector<std::string, std::allocator<std::string> > const&) 0.00 7.29 0.00 40 0.00 0.00 std::string* std::uninitialized_copy<__gnu_cxx::__normal_iterator<std::string const*, std::vector<std::string, std::allocator<std::string> > >, std::string*>(__gnu_cxx::__normal_iterator<std::string const*, std::vector<std::string, std::allocator<std::string> > >, __gnu_cxx::__normal_iterator<std::string const*, std::vector<std::string, std::allocator<std::string> > >, std::string*) 0.00 7.29 0.00 40 0.00 0.00 std::string* std::__uninitialized_copy_a<__gnu_cxx::__normal_iterator<std::string const*, std::vector<std::string, std::allocator<std::string> > >, std::string*, std::string>(__gnu_cxx::__normal_iterator<std::string const*, std::vector<std::string, std::allocator<std::string> > >, __gnu_cxx::__normal_iterator<std::string const*, std::vector<std::string, std::allocator<std::string> > >, std::string*, std::allocator<std::string>&) 0.00 7.29 0.00 38 0.00 0.00 std::_Rb_tree<std::string, std::pair<std::string const, boost::program_options::variable_value>, std::_Select1st<std::pair<std::string const, boost::program_options::variable_value> >, std::less<std::string>, std::allocator<std::pair<std::string const, boost::program_options::variable_value> > >::_S_right(std::_Rb_tree_node_base const*) 0.00 7.29 0.00 36 0.00 0.00 std::_Vector_base<boost::program_options::basic_option<char>, std::allocator<boost::program_options::basic_option<char> > >::_M_get_Tp_allocator() 0.00 7.29 0.00 35 0.00 0.00 __gnu_cxx::new_allocator<boost::program_options::basic_option<char> >::~new_allocator() 0.00 7.29 0.00 35 0.00 0.00 std::allocator<boost::program_options::basic_option<char> >::~allocator() 0.00 7.29 0.00 34 0.00 0.00 boost::any::placeholder::~placeholder() 0.00 7.29 0.00 33 0.00 0.00 std::_Rb_tree_const_iterator<std::pair<std::string const, boost::program_options::variable_value> >::operator==(std::_Rb_tree_const_iterator<std::pair<std::string const, boost::program_options::variable_value> > const&) const 0.00 7.29 0.00 33 0.00 0.00 void std::_Destroy_aux<false>::__destroy<boost::program_options::basic_option<char>*>(boost::program_options::basic_option<char>*, boost::program_options::basic_option<char>*) 0.00 7.29 0.00 33 0.00 0.00 std::_Vector_base<boost::program_options::basic_option<char>, std::allocator<boost::program_options::basic_option<char> > >::_Vector_impl::~_Vector_impl() 0.00 7.29 0.00 33 0.00 0.00 std::_Vector_base<boost::program_options::basic_option<char>, std::allocator<boost::program_options::basic_option<char> > >::_M_deallocate(boost::program_options::basic_option<char>*, unsigned long) 0.00 7.29 0.00 33 0.00 0.00 std::_Vector_base<boost::program_options::basic_option<char>, std::allocator<boost::program_options::basic_option<char> > >::~_Vector_base() 0.00 7.29 0.00 33 0.00 0.00 void std::_Destroy<boost::program_options::basic_option<char>*>(boost::program_options::basic_option<char>*, boost::program_options::basic_option<char>*) 0.00 7.29 0.00 33 0.00 0.00 void std::_Destroy<boost::program_options::basic_option<char>*, boost::program_options::basic_option<char> >(boost::program_options::basic_option<char>*, boost::program_options::basic_option<char>*, std::allocator<boost::program_options::basic_option<char> >&) 0.00 7.29 0.00 32 0.00 0.00 boost::any::placeholder::placeholder() 0.00 7.29 0.00 31 0.00 0.00 boost::detail::shared_count::~shared_count() 0.00 7.29 0.00 31 0.00 0.00 unsigned long const& std::max<unsigned long>(unsigned long const&, unsigned long const&) 0.00 7.29 0.00 30 0.00 0.00 boost::any::any() 0.00 7.29 0.00 30 0.00 0.00 boost::detail::sp_counted_base::release() 0.00 7.29 0.00 30 0.00 0.00 std::_Rb_tree<std::string, std::pair<std::string const, boost::program_options::variable_value>, std::_Select1st<std::pair<std::string const, boost::program_options::variable_value> >, std::less<std::string>, std::allocator<std::pair<std::string const, boost::program_options::variable_value> > >::_M_lower_bound(std::_Rb_tree_node<std::pair<std::string const, boost::program_options::variable_value> > const*, std::_Rb_tree_node<std::pair<std::string const, boost::program_options::variable_value> > const*, std::string const&) const 0.00 7.29 0.00 30 0.00 0.00 std::_Rb_tree<std::string, std::pair<std::string const, boost::program_options::variable_value>, std::_Select1st<std::pair<std::string const, boost::program_options::variable_value> >, std::less<std::string>, std::allocator<std::pair<std::string const, boost::program_options::variable_value> > >::_M_end() const 0.00 7.29 0.00 30 0.00 0.00 std::_Rb_tree<std::string, std::pair<std::string const, boost::program_options::variable_value>, std::_Select1st<std::pair<std::string const, boost::program_options::variable_value> >, std::less<std::string>, std::allocator<std::pair<std::string const, boost::program_options::variable_value> > >::_M_begin() const 0.00 7.29 0.00 30 0.00 0.00 std::_Rb_tree<std::string, std::pair<std::string const, boost::program_options::variable_value>, std::_Select1st<std::pair<std::string const, boost::program_options::variable_value> >, std::less<std::string>, std::allocator<std::pair<std::string const, boost::program_options::variable_value> > >::_S_key(std::_Rb_tree_node_base const*) 0.00 7.29 0.00 30 0.00 0.00 std::_Rb_tree<std::string, std::pair<std::string const, boost::program_options::variable_value>, std::_Select1st<std::pair<std::string const, boost::program_options::variable_value> >, std::less<std::string>, std::allocator<std::pair<std::string const, boost::program_options::variable_value> > >::_S_value(std::_Rb_tree_node_base const*) 0.00 7.29 0.00 30 0.00 0.00 std::remove_reference<std::string&>::type&& std::move<std::string&>(std::string&) 0.00 7.29 0.00 24 0.00 0.00 void std::_Destroy_aux<true>::__destroy<short*>(short*, short*) 0.00 7.29 0.00 24 0.00 0.00 std::_Vector_base<short, std::allocator<short> >::_M_deallocate(short*, unsigned long) 0.00 7.29 0.00 24 0.00 0.00 boost::program_options::basic_option<char>* std::__addressof<boost::program_options::basic_option<char> >(boost::program_options::basic_option<char>&) 0.00 7.29 0.00 24 0.00 0.00 void std::_Destroy<short*>(short*, short*) 0.00 7.29 0.00 24 0.00 0.00 void std::_Destroy<short*, short>(short*, short*, std::allocator<short>&) 0.00 7.29 0.00 23 0.00 0.00 __gnu_cxx::new_allocator<short>::deallocate(short*, unsigned long) 0.00 7.29 0.00 23 0.00 0.00 __gnu_cxx::new_allocator<short>::allocate(unsigned long, void const*) 0.00 7.29 0.00 23 0.00 0.00 boost::any::empty() const 0.00 7.29 0.00 23 0.00 0.00 std::vector<short, std::allocator<short> >::_M_check_len(unsigned long, char const*) const 0.00 7.29 0.00 23 0.00 0.00 short* std::__copy_move<true, true, std::random_access_iterator_tag>::__copy_m<short>(short const*, short const*, short*) 0.00 7.29 0.00 23 0.00 0.00 std::_Vector_base<short, std::allocator<short> >::_M_allocate(unsigned long) 0.00 7.29 0.00 23 0.00 0.00 short* std::__uninitialized_copy<true>::__uninit_copy<std::move_iterator<short*>, short*>(std::move_iterator<short*>, std::move_iterator<short*>, short*) 0.00 7.29 0.00 23 0.00 0.00 void std::vector<short, std::allocator<short> >::_M_emplace_back_aux<short const&>(short const&) 0.00 7.29 0.00 23 0.00 0.00 short* std::__copy_move_a<true, short*, short*>(short*, short*, short*) 0.00 7.29 0.00 23 0.00 0.00 short* std::__copy_move_a2<true, short*, short*>(short*, short*, short*) 0.00 7.29 0.00 23 0.00 0.00 short* std::uninitialized_copy<std::move_iterator<short*>, short*>(std::move_iterator<short*>, std::move_iterator<short*>, short*) 0.00 7.29 0.00 23 0.00 0.00 short* std::__uninitialized_copy_a<std::move_iterator<short*>, short*, short>(std::move_iterator<short*>, std::move_iterator<short*>, short*, std::allocator<short>&) 0.00 7.29 0.00 23 0.00 0.00 short* std::__uninitialized_move_if_noexcept_a<short*, short*, std::allocator<short> >(short*, short*, short*, std::allocator<short>&) 0.00 7.29 0.00 23 0.00 0.00 short* std::copy<std::move_iterator<short*>, short*>(std::move_iterator<short*>, std::move_iterator<short*>, short*) 0.00 7.29 0.00 22 0.00 0.00 std::type_info::name() const 0.00 7.29 0.00 22 0.00 0.00 bool std::operator==<std::string*>(std::move_iterator<std::string*> const&, std::move_iterator<std::string*> const&) 0.00 7.29 0.00 22 0.00 0.00 bool std::operator!=<std::string*>(std::move_iterator<std::string*> const&, std::move_iterator<std::string*> const&) 0.00 7.29 0.00 20 0.00 0.00 boost::program_options::basic_option<char>::~basic_option() 0.00 7.29 0.00 20 0.00 0.00 boost::any::holder<int>::holder(int const&) 0.00 7.29 0.00 20 0.00 0.00 boost::any::holder<int>::~holder() 0.00 7.29 0.00 20 0.00 0.00 void std::_Destroy<boost::program_options::basic_option<char> >(boost::program_options::basic_option<char>*) 0.00 7.29 0.00 19 0.00 0.00 boost::shared_ptr<boost::program_options::option_description>::~shared_ptr() 0.00 7.29 0.00 19 0.00 0.00 boost::detail::sp_counted_base::weak_release() 0.00 7.29 0.00 19 0.00 0.00 boost::detail::sp_counted_base::destroy() 0.00 7.29 0.00 19 0.00 0.00 boost::shared_ptr<boost::program_options::option_description>* std::__addressof<boost::shared_ptr<boost::program_options::option_description> >(boost::shared_ptr<boost::program_options::option_description>&) 0.00 7.29 0.00 19 0.00 0.00 void std::_Destroy<boost::shared_ptr<boost::program_options::option_description> >(boost::shared_ptr<boost::program_options::option_description>*) 0.00 7.29 0.00 18 0.00 0.00 boost::any::swap(boost::any&) 0.00 7.29 0.00 18 0.00 0.00 boost::any::operator=(boost::any) 0.00 7.29 0.00 18 0.00 0.00 std::remove_reference<boost::program_options::basic_option<char>*&>::type&& std::move<boost::program_options::basic_option<char>*&>(boost::program_options::basic_option<char>*&) 0.00 7.29 0.00 18 0.00 0.00 void std::swap<boost::any::placeholder*>(boost::any::placeholder*&, boost::any::placeholder*&) 0.00 7.29 0.00 16 0.00 0.00 _ZN9__gnu_cxx13new_allocatorISsE9constructISsISsEEEvPT_DpOT0_ 0.00 7.29 0.00 16 0.00 0.00 std::vector<std::string, std::allocator<std::string> >::max_size() const 0.00 7.29 0.00 16 0.00 0.00 std::char_traits<char>::assign(char&, char const&) 0.00 7.29 0.00 16 0.00 0.00 std::move_iterator<std::string*>::move_iterator(std::string*) 0.00 7.29 0.00 16 0.00 0.00 std::enable_if<std::allocator_traits<std::allocator<std::string> >::__maxsize_helper<std::allocator<std::string> const>::value, unsigned long>::type std::allocator_traits<std::allocator<std::string> >::_S_max_size<std::allocator<std::string> const>(std::allocator<std::string> const&) 0.00 7.29 0.00 16 0.00 0.00 std::enable_if<std::allocator_traits<std::allocator<std::string> >::__construct_helper<std::string, std::string>::value, void>::type std::allocator_traits<std::allocator<std::string> >::_S_construct<std::string, std::string>(std::allocator<std::string>&, std::string*, std::string&&) 0.00 7.29 0.00 16 0.00 0.00 std::allocator_traits<std::allocator<std::string> >::max_size(std::allocator<std::string> const&) 0.00 7.29 0.00 16 0.00 0.00 _ZNSt16allocator_traitsISaISsEE9constructISsISsEEEDTcl12_S_constructfp_fp0_spcl7forwardIT0_Efp1_EEERS0_PT_DpOS3_ 0.00 7.29 0.00 16 0.00 0.00 void std::vector<std::string, std::allocator<std::string> >::emplace_back<std::string>(std::string&&) 0.00 7.29 0.00 16 0.00 0.00 std::vector<std::string, std::allocator<std::string> >::push_back(std::string&&) 0.00 7.29 0.00 16 0.00 0.00 std::move_iterator<std::string*> std::__make_move_if_noexcept_iterator<std::string*, std::move_iterator<std::string*> >(std::string*) 0.00 7.29 0.00 15 0.00 0.00 boost::filesystem::path::~path() 0.00 7.29 0.00 15 0.00 0.00 boost::function_base::function_base() 0.00 7.29 0.00 15 0.00 0.00 boost::program_options::value_semantic::value_semantic() 0.00 7.29 0.00 15 0.00 0.00 boost::program_options::value_semantic::~value_semantic() 0.00 7.29 0.00 15 0.00 0.00 boost::program_options::typed_value_base::typed_value_base() 0.00 7.29 0.00 15 0.00 0.00 boost::program_options::typed_value_base::~typed_value_base() 0.00 7.29 0.00 15 0.00 0.00 boost::program_options::value_semantic_codecvt_helper<char>::value_semantic_codecvt_helper() 0.00 7.29 0.00 15 0.00 0.00 boost::program_options::value_semantic_codecvt_helper<char>::~value_semantic_codecvt_helper() 0.00 7.29 0.00 15 0.00 0.00 std::char_traits<char>::to_char_type(int const&) 0.00 7.29 0.00 14 0.00 0.00 std::move_iterator<std::string*>::operator*() const 0.00 7.29 0.00 14 0.00 0.00 std::move_iterator<std::string*>::operator++() 0.00 7.29 0.00 14 0.00 0.00 void std::_Construct<std::string, std::string>(std::string*, std::string&&) 0.00 7.29 0.00 12 0.00 0.00 boost::shared_ptr<boost::program_options::value_semantic const>::~shared_ptr() 0.00 7.29 0.00 12 0.00 0.00 boost::any::holder<int>::~holder() 0.00 7.29 0.00 11 0.00 0.00 boost::program_options::variable_value::~variable_value() 0.00 7.29 0.00 11 0.00 0.00 __gnu_cxx::new_allocator<boost::program_options::basic_option<char> >::deallocate(boost::program_options::basic_option<char>*, unsigned long) 0.00 7.29 0.00 11 0.00 0.00 __gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<std::string const, boost::program_options::variable_value> > >::deallocate(std::_Rb_tree_node<std::pair<std::string const, boost::program_options::variable_value> >*, unsigned long) 0.00 7.29 0.00 11 0.00 0.00 void __gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<std::string const, boost::program_options::variable_value> > >::destroy<std::_Rb_tree_node<std::pair<std::string const, boost::program_options::variable_value> > >(std::_Rb_tree_node<std::pair<std::string const, boost::program_options::variable_value> >*) 0.00 7.29 0.00 11 0.00 0.00 boost::function_base::empty() const 0.00 7.29 0.00 11 0.00 0.00 boost::any::type() const 0.00 7.29 0.00 11 0.00 0.00 std::_Rb_tree_node<std::pair<std::string const, boost::program_options::variable_value> >::~_Rb_tree_node() 0.00 7.29 0.00 11 0.00 0.00 std::pair<std::string const, boost::program_options::variable_value>::~pair() 0.00 7.29 0.00 11 0.00 0.00 std::_Rb_tree<std::string, std::pair<std::string const, boost::program_options::variable_value>, std::_Select1st<std::pair<std::string const, boost::program_options::variable_value> >, std::less<std::string>, std::allocator<std::pair<std::string const, boost::program_options::variable_value> > >::_M_put_node(std::_Rb_tree_node<std::pair<std::string const, boost::program_options::variable_value> >*) 0.00 7.29 0.00 11 0.00 0.00 std::_Rb_tree<std::string, std::pair<std::string const, boost::program_options::variable_value>, std::_Select1st<std::pair<std::string const, boost::program_options::variable_value> >, std::less<std::string>, std::allocator<std::pair<std::string const, boost::program_options::variable_value> > >::_M_destroy_node(std::_Rb_tree_node<std::pair<std::string const, boost::program_options::variable_value> >*) 0.00 7.29 0.00 11 0.00 0.00 std::_Rb_tree<std::string, std::pair<std::string const, boost::program_options::variable_value>, std::_Select1st<std::pair<std::string const, boost::program_options::variable_value> >, std::less<std::string>, std::allocator<std::pair<std::string const, boost::program_options::variable_value> > >::_M_get_Node_allocator() 0.00 7.29 0.00 11 0.00 0.00 std::_Rb_tree<std::string, std::pair<std::string const, boost::program_options::variable_value>, std::_Select1st<std::pair<std::string const, boost::program_options::variable_value> >, std::less<std::string>, std::allocator<std::pair<std::string const, boost::program_options::variable_value> > >::_S_left(std::_Rb_tree_node_base*) 0.00 7.29 0.00 11 0.00 0.00 std::_Rb_tree<std::string, std::pair<std::string const, boost::program_options::variable_value>, std::_Select1st<std::pair<std::string const, boost::program_options::variable_value> >, std::less<std::string>, std::allocator<std::pair<std::string const, boost::program_options::variable_value> > >::_S_right(std::_Rb_tree_node_base*) 0.00 7.29 0.00 10 0.00 0.00 boost::detail::lexical_stream_limited_src<char, std::char_traits<char>, false>::lexical_stream_limited_src(char*, char*) 0.00 7.29 0.00 10 0.00 0.00 __gnu_cxx::__normal_iterator<boost::program_options::basic_option<char> const*, std::vector<boost::program_options::basic_option<char>, std::allocator<boost::program_options::basic_option<char> > > >::base() const 0.00 7.29 0.00 9 0.00 0.00 boost::filesystem::path::path(char const*) 0.00 7.29 0.00 9 0.00 0.00 boost::filesystem::operator==(boost::filesystem::path const&, char const*) 0.00 7.29 0.00 9 0.00 0.00 boost::filesystem::path::compare(char const*) const 0.00 7.29 0.00 8 0.00 0.00 RGBA::RGBA(int, int, int, int) 0.00 7.29 0.00 8 0.00 0.00 boost::any::holder<double>::holder(double const&) 0.00 7.29 0.00 8 0.00 0.00 boost::any::holder<double>::~holder() 0.00 7.29 0.00 8 0.00 0.00 boost::any::any<int>(int const&) 0.00 7.29 0.00 8 0.00 0.00 bool boost::detail::lexical_stream_limited_src<char, std::char_traits<char>, false>::operator>><std::allocator<char> >(std::basic_string<char, std::char_traits<char>, std::allocator<char> >&) 0.00 7.29 0.00 8 0.00 0.00 __gnu_cxx::new_allocator<std::_Rb_tree_node<std::string> >::deallocate(std::_Rb_tree_node<std::string>*, unsigned long) 0.00 7.29 0.00 8 0.00 0.00 void __gnu_cxx::new_allocator<std::_Rb_tree_node<std::string> >::destroy<std::_Rb_tree_node<std::string> >(std::_Rb_tree_node<std::string>*) 0.00 7.29 0.00 8 0.00 0.00 boost::program_options::variables_map::operator[](std::string const&) const 0.00 7.29 0.00 8 0.00 0.00 std::locale::operator!=(std::locale const&) const 0.00 7.29 0.00 8 0.00 0.00 std::vector<std::string, std::allocator<std::string> >::_M_check_len(unsigned long, char const*) const 0.00 7.29 0.00 8 0.00 0.00 std::vector<std::string, std::allocator<std::string> >::operator[](unsigned long) const 0.00 7.29 0.00 8 0.00 0.00 std::string& std::string::assign<char*>(char*, char*) 0.00 7.29 0.00 8 0.00 0.00 std::_Rb_tree_node<std::string>::~_Rb_tree_node() 0.00 7.29 0.00 8 0.00 0.00 std::string* std::__uninitialized_copy<false>::__uninit_copy<std::move_iterator<std::string*>, std::string*>(std::move_iterator<std::string*>, std::move_iterator<std::string*>, std::string*) 0.00 7.29 0.00 8 0.00 0.00 void std::vector<std::string, std::allocator<std::string> >::_M_emplace_back_aux<std::string>(std::string&&) 0.00 7.29 0.00 8 0.00 0.00 std::_Rb_tree<std::string, std::string, std::_Identity<std::string>, std::less<std::string>, std::allocator<std::string> >::_M_put_node(std::_Rb_tree_node<std::string>*) 0.00 7.29 0.00 8 0.00 0.00 std::_Rb_tree<std::string, std::string, std::_Identity<std::string>, std::less<std::string>, std::allocator<std::string> >::_M_destroy_node(std::_Rb_tree_node<std::string>*) 0.00 7.29 0.00 8 0.00 0.00 std::_Rb_tree<std::string, std::string, std::_Identity<std::string>, std::less<std::string>, std::allocator<std::string> >::_M_get_Node_allocator() 0.00 7.29 0.00 8 0.00 0.00 std::_Rb_tree<std::string, std::string, std::_Identity<std::string>, std::less<std::string>, std::allocator<std::string> >::_S_left(std::_Rb_tree_node_base*) 0.00 7.29 0.00 8 0.00 0.00 std::_Rb_tree<std::string, std::string, std::_Identity<std::string>, std::less<std::string>, std::allocator<std::string> >::_S_right(std::_Rb_tree_node_base*) 0.00 7.29 0.00 8 0.00 0.00 std::string* std::uninitialized_copy<std::move_iterator<std::string*>, std::string*>(std::move_iterator<std::string*>, std::move_iterator<std::string*>, std::string*) 0.00 7.29 0.00 8 0.00 0.00 std::string* std::__uninitialized_copy_a<std::move_iterator<std::string*>, std::string*, std::string>(std::move_iterator<std::string*>, std::move_iterator<std::string*>, std::string*, std::allocator<std::string>&) 0.00 7.29 0.00 8 0.00 0.00 std::string* std::__uninitialized_move_if_noexcept_a<std::string*, std::string*, std::allocator<std::string> >(std::string*, std::string*, std::string*, std::allocator<std::string>&) 0.00 7.29 0.00 7 0.00 0.00 boost::any::any(boost::any const&) 0.00 7.29 0.00 6 0.00 0.00 std::string boost::lexical_cast<std::string, int>(int const&) 0.00 7.29 0.00 6 0.00 0.00 boost::program_options::typed_value<int, char>::default_value(int const&) 0.00 7.29 0.00 6 0.00 0.00 boost::program_options::typed_value<int, char>::typed_value(int*) 0.00 7.29 0.00 6 0.00 0.00 boost::program_options::typed_value<int, char>::~typed_value() 0.00 7.29 0.00 6 0.00 0.00 boost::program_options::typed_value<int, char>* boost::program_options::value<int>(int*) 0.00 7.29 0.00 6 0.00 0.00 boost::any::holder<std::string>::~holder() 0.00 7.29 0.00 6 0.00 0.00 boost::detail::lcast_src_length<int>::check_coverage() 0.00 7.29 0.00 6 0.00 0.00 boost::make_unsigned<int>::type boost::detail::lcast_to_unsigned<int>(int) 0.00 7.29 0.00 6 0.00 0.00 char* boost::detail::lcast_put_unsigned<std::char_traits<char>, unsigned int, char>(unsigned int, char*) 0.00 7.29 0.00 6 0.00 0.00 boost::detail::lexical_cast_do_cast<std::string, int>::lexical_cast_impl(int const&) 0.00 7.29 0.00 6 0.00 0.00 bool boost::detail::lexical_stream_limited_src<char, std::char_traits<char>, false>::shl_signed<int>(int) 0.00 7.29 0.00 6 0.00 0.00 boost::detail::lexical_stream_limited_src<char, std::char_traits<char>, false>::operator<<(int) 0.00 7.29 0.00 6 0.00 0.00 int const* boost::any_cast<int>(boost::any const*) 0.00 7.29 0.00 6 0.00 0.00 int* boost::any_cast<int>(boost::any*) 0.00 7.29 0.00 6 0.00 0.00 boost::function1<void, int const&>::clear() 0.00 7.29 0.00 6 0.00 0.00 boost::function1<void, int const&>::function1() 0.00 7.29 0.00 6 0.00 0.00 boost::function1<void, int const&>::~function1() 0.00 7.29 0.00 6 0.00 0.00 boost::any::holder<int>::type() const 0.00 7.29 0.00 6 0.00 0.00 boost::function1<void, int const&>::operator void (boost::function1<void, int const&>::dummy::*)()() const 0.00 7.29 0.00 6 0.00 0.00 std::unary_function<int const&, void>::unary_function() 0.00 7.29 0.00 6 0.00 0.00 void std::swap<boost::program_options::basic_option<char>*>(boost::program_options::basic_option<char>*&, boost::program_options::basic_option<char>*&) 0.00 7.29 0.00 5 0.00 0.00 bool __gnu_cxx::operator!=<boost::program_options::basic_option<char> const*, std::vector<boost::program_options::basic_option<char>, std::allocator<boost::program_options::basic_option<char> > > >(__gnu_cxx::__normal_iterator<boost::program_options::basic_option<char> const*, std::vector<boost::program_options::basic_option<char>, std::allocator<boost::program_options::basic_option<char> > > > const&, __gnu_cxx::__normal_iterator<boost::program_options::basic_option<char> const*, std::vector<boost::program_options::basic_option<char>, std::allocator<boost::program_options::basic_option<char> > > > const&) 0.00 7.29 0.00 4 0.00 0.00 hasOptionValue(boost::program_options::variables_map const&, char const*) 0.00 7.29 0.00 4 0.00 0.00 RGBA::RGBA() 0.00 7.29 0.00 4 0.00 0.00 boost::program_options::typed_value<RGBA, char>::typed_value(RGBA*) 0.00 7.29 0.00 4 0.00 0.00 boost::program_options::typed_value<RGBA, char>::~typed_value() 0.00 7.29 0.00 4 0.00 0.00 boost::program_options::basic_option<char>::basic_option(boost::program_options::basic_option<char> const&) 0.00 7.29 0.00 4 0.00 0.00 boost::program_options::typed_value<RGBA, char>* boost::program_options::value<RGBA>(RGBA*) 0.00 7.29 0.00 4 0.00 0.00 boost::any::holder<std::string>::holder(std::string const&) 0.00 7.29 0.00 4 0.00 0.00 boost::any::holder<std::string>::~holder() 0.00 7.29 0.00 4 0.00 0.00 boost::any::holder<double>::~holder() 0.00 7.29 0.00 4 0.00 0.00 boost::function1<void, RGBA const&>::clear() 0.00 7.29 0.00 4 0.00 0.00 boost::function1<void, RGBA const&>::function1() 0.00 7.29 0.00 4 0.00 0.00 boost::function1<void, RGBA const&>::~function1() 0.00 7.29 0.00 4 0.00 0.00 __gnu_cxx::new_allocator<boost::program_options::basic_option<char> >::new_allocator(__gnu_cxx::new_allocator<boost::program_options::basic_option<char> > const&) 0.00 7.29 0.00 4 0.00 0.00 __gnu_cxx::__normal_iterator<boost::program_options::basic_option<char> const*, std::vector<boost::program_options::basic_option<char>, std::allocator<boost::program_options::basic_option<char> > > >::operator++() 0.00 7.29 0.00 4 0.00 0.00 bool __gnu_cxx::operator==<std::string const*, std::vector<std::string, std::allocator<std::string> > >(__gnu_cxx::__normal_iterator<std::string const*, std::vector<std::string, std::allocator<std::string> > > const&, __gnu_cxx::__normal_iterator<std::string const*, std::vector<std::string, std::allocator<std::string> > > const&) 0.00 7.29 0.00 4 0.00 0.00 boost::program_options::variable_value::empty() const 0.00 7.29 0.00 4 0.00 0.00 boost::program_options::variable_value::defaulted() const 0.00 7.29 0.00 4 0.00 0.00 boost::any::holder<int>::clone() const 0.00 7.29 0.00 4 0.00 0.00 __gnu_cxx::__normal_iterator<boost::program_options::basic_option<char> const*, std::vector<boost::program_options::basic_option<char>, std::allocator<boost::program_options::basic_option<char> > > >::operator*() const 0.00 7.29 0.00 4 0.00 0.00 std::vector<std::string, std::allocator<std::string> >::empty() const 0.00 7.29 0.00 4 0.00 0.00 std::vector<std::string, std::allocator<std::string> >::front() const 0.00 7.29 0.00 4 0.00 0.00 std::allocator<boost::program_options::basic_option<char> >::allocator(std::allocator<boost::program_options::basic_option<char> > const&) 0.00 7.29 0.00 4 0.00 0.00 std::char_traits<char>::eq(char const&, char const&) 0.00 7.29 0.00 4 0.00 0.00 std::unary_function<RGBA const&, void>::unary_function() 0.00 7.29 0.00 4 0.00 0.00 std::_Rb_tree_iterator<std::pair<std::string const, std::string> >::_Rb_tree_iterator(std::_Rb_tree_node<std::pair<std::string const, std::string> >*) 0.00 7.29 0.00 4 0.00 0.00 std::vector<boost::program_options::basic_option<char>, std::allocator<boost::program_options::basic_option<char> > >::~vector() 0.00 7.29 0.00 4 0.00 0.00 void std::_Construct<boost::program_options::basic_option<char>, boost::program_options::basic_option<char> const&>(boost::program_options::basic_option<char>*, boost::program_options::basic_option<char> const&) 0.00 7.29 0.00 4 0.00 0.00 boost::program_options::basic_option<char> const& std::forward<boost::program_options::basic_option<char> const&>(std::remove_reference<boost::program_options::basic_option<char> const&>::type&) 0.00 7.29 0.00 3 0.00 0.00 writeInt32(std::ostream&, int) 0.00 7.29 0.00 3 0.00 0.00 boost::program_options::typed_value<std::string, char>::typed_value(std::string*) 0.00 7.29 0.00 3 0.00 0.00 boost::program_options::typed_value<std::string, char>::~typed_value() 0.00 7.29 0.00 3 0.00 0.00 boost::program_options::typed_value<std::string, char>* boost::program_options::value<std::string>(std::string*) 0.00 7.29 0.00 3 0.00 0.00 std::string const* boost::any_cast<std::string>(boost::any const*) 0.00 7.29 0.00 3 0.00 0.00 std::string* boost::any_cast<std::string>(boost::any*) 0.00 7.29 0.00 3 0.00 0.00 boost::function1<void, std::string const&>::clear() 0.00 7.29 0.00 3 0.00 0.00 boost::function1<void, std::string const&>::function1() 0.00 7.29 0.00 3 0.00 0.00 boost::function1<void, std::string const&>::~function1() 0.00 7.29 0.00 3 0.00 0.00 boost::function_base::has_trivial_copy_and_destroy() const 0.00 7.29 0.00 3 0.00 0.00 boost::any::holder<std::string>::type() const 0.00 7.29 0.00 3 0.00 0.00 boost::function1<void, std::string const&>::operator void (boost::function1<void, std::string const&>::dummy::*)()() const 0.00 7.29 0.00 3 0.00 0.00 std::unique_ptr<AudioFileReader, std::default_delete<AudioFileReader> >::get() const 0.00 7.29 0.00 3 0.00 0.00 std::map<std::string, boost::program_options::variable_value, std::less<std::string>, std::allocator<std::pair<std::string const, boost::program_options::variable_value> > >::count(std::string const&) const 0.00 7.29 0.00 3 0.00 0.00 std::_Rb_tree<std::string, std::pair<std::string const, boost::program_options::variable_value>, std::_Select1st<std::pair<std::string const, boost::program_options::variable_value> >, std::less<std::string>, std::allocator<std::pair<std::string const, boost::program_options::variable_value> > >::find(std::string const&) const 0.00 7.29 0.00 3 0.00 0.00 std::_Head_base<0ul, AudioFileReader*, false>::_M_head(std::_Head_base<0ul, AudioFileReader*, false> const&) 0.00 7.29 0.00 3 0.00 0.00 std::_Tuple_impl<0ul, AudioFileReader*, std::default_delete<AudioFileReader> >::_M_head(std::_Tuple_impl<0ul, AudioFileReader*, std::default_delete<AudioFileReader> > const&) 0.00 7.29 0.00 3 0.00 0.00 std::unary_function<std::string const&, void>::unary_function() 0.00 7.29 0.00 3 0.00 0.00 std::_Rb_tree<std::string, std::pair<std::string const, std::string>, std::_Select1st<std::pair<std::string const, std::string> >, std::less<std::string>, std::allocator<std::pair<std::string const, std::string> > >::_M_end() 0.00 7.29 0.00 3 0.00 0.00 std::__add_c_ref<AudioFileReader*>::type std::__get_helper<0ul, AudioFileReader*, std::default_delete<AudioFileReader> >(std::_Tuple_impl<0ul, AudioFileReader*, std::default_delete<AudioFileReader> > const&) 0.00 7.29 0.00 3 0.00 0.00 std::__add_c_ref<std::tuple_element<0ul, std::tuple<AudioFileReader*, std::default_delete<AudioFileReader> > >::type>::type std::get<0ul, AudioFileReader*, std::default_delete<AudioFileReader> >(std::tuple<AudioFileReader*, std::default_delete<AudioFileReader> > const&) 0.00 7.29 0.00 3 0.00 0.00 std::remove_reference<ScaleFactor*&>::type&& std::move<ScaleFactor*&>(ScaleFactor*&) 0.00 7.29 0.00 3 0.00 0.00 std::remove_reference<AudioFileReader*&>::type&& std::move<AudioFileReader*&>(AudioFileReader*&) 0.00 7.29 0.00 2 0.00 0.00 writeUInt32(std::ostream&, unsigned int) 0.00 7.29 0.00 2 0.00 0.00 WaveformColors::WaveformColors(RGBA const&, RGBA const&, RGBA const&, RGBA const&) 0.00 7.29 0.00 2 0.00 0.00 Mp3AudioFileReader::close() 0.00 7.29 0.00 2 0.00 0.00 boost::filesystem::path::path(std::string const&) 0.00 7.29 0.00 2 0.00 0.00 std::string boost::lexical_cast<std::string, double>(double const&) 0.00 7.29 0.00 2 0.00 0.00 int boost::lexical_cast<int, std::string>(std::string const&) 0.00 7.29 0.00 2 0.00 0.00 std::basic_string<char, std::char_traits<char>, std::allocator<char> > const& boost::program_options::validators::get_single_string<char>(std::vector<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&, bool) 0.00 7.29 0.00 2 0.00 0.00 boost::program_options::typed_value<std::string, char>::required() 0.00 7.29 0.00 2 0.00 0.00 boost::program_options::typed_value<double, char>::default_value(double const&) 0.00 7.29 0.00 2 0.00 0.00 boost::program_options::typed_value<double, char>::typed_value(double*) 0.00 7.29 0.00 2 0.00 0.00 boost::program_options::typed_value<double, char>::~typed_value() 0.00 7.29 0.00 2 0.00 0.00 boost::program_options::basic_parsed_options<char>::~basic_parsed_options() 0.00 7.29 0.00 2 0.00 0.00 boost::program_options::typed_value<double, char>* boost::program_options::value<double>(double*) 0.00 7.29 0.00 2 0.00 0.00 void boost::program_options::validate<int, char>(boost::any&, std::vector<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&, int*, long) 0.00 7.29 0.00 2 0.00 0.00 boost::any::any<double>(double const&) 0.00 7.29 0.00 2 0.00 0.00 bool boost::math::isinf<double>(double) 0.00 7.29 0.00 2 0.00 0.00 bool boost::math::isnan<double>(double) 0.00 7.29 0.00 2 0.00 0.00 bool boost::math::detail::isinf_impl<double>(double, boost::math::detail::native_tag const&) 0.00 7.29 0.00 2 0.00 0.00 bool boost::math::detail::isnan_impl<double>(double, boost::math::detail::native_tag const&) 0.00 7.29 0.00 2 0.00 0.00 bool boost::detail::put_inf_nan<char, double>(char*, char*&, double const&) 0.00 7.29 0.00 2 0.00 0.00 boost::detail::lcast_src_length<std::string>::check_coverage() 0.00 7.29 0.00 2 0.00 0.00 boost::detail::lcast_src_length<double>::check_coverage() 0.00 7.29 0.00 2 0.00 0.00 bool boost::detail::put_inf_nan_impl<char, double>(char*, char*&, double const&, char const*, char const*) 0.00 7.29 0.00 2 0.00 0.00 bool boost::detail::lcast_ret_unsigned<std::char_traits<char>, unsigned int, char>(unsigned int&, char const*, char const*) 0.00 7.29 0.00 2 0.00 0.00 long boost::detail::lcast_get_precision<double>(double*) 0.00 7.29 0.00 2 0.00 0.00 boost::detail::lexical_cast_do_cast<std::string, double>::lexical_cast_impl(double const&) 0.00 7.29 0.00 2 0.00 0.00 boost::detail::lexical_cast_do_cast<int, std::string>::lexical_cast_impl(std::string const&) 0.00 7.29 0.00 2 0.00 0.00 bool boost::detail::lexical_stream_limited_src<char, std::char_traits<char>, false>::shr_signed<int>(int&) 0.00 7.29 0.00 2 0.00 0.00 boost::detail::lexical_stream_limited_src<char, std::char_traits<char>, false>::shl_real_type(double, char*, char*&) 0.00 7.29 0.00 2 0.00 0.00 boost::detail::lexical_stream_limited_src<char, std::char_traits<char>, false>::operator<<(double) 0.00 7.29 0.00 2 0.00 0.00 bool boost::detail::lexical_stream_limited_src<char, std::char_traits<char>, false>::operator<< <std::allocator<char> >(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) 0.00 7.29 0.00 2 0.00 0.00 boost::detail::lexical_stream_limited_src<char, std::char_traits<char>, false>::operator>>(int&) 0.00 7.29 0.00 2 0.00 0.00 double const* boost::any_cast<double>(boost::any const*) 0.00 7.29 0.00 2 0.00 0.00 double* boost::any_cast<double>(boost::any*) 0.00 7.29 0.00 2 0.00 0.00 boost::function1<void, double const&>::clear() 0.00 7.29 0.00 2 0.00 0.00 boost::function1<void, double const&>::function1() 0.00 7.29 0.00 2 0.00 0.00 boost::function1<void, double const&>::~function1() 0.00 7.29 0.00 2 0.00 0.00 __gnu_cxx::new_allocator<std::string>::new_allocator() 0.00 7.29 0.00 2 0.00 0.00 __gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<std::string const, std::string> > >::deallocate(std::_Rb_tree_node<std::pair<std::string const, std::string> >*, unsigned long) 0.00 7.29 0.00 2 0.00 0.00 void __gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<std::string const, std::string> > >::destroy<std::_Rb_tree_node<std::pair<std::string const, std::string> > >(std::_Rb_tree_node<std::pair<std::string const, std::string> >*) 0.00 7.29 0.00 2 0.00 0.00 __gnu_cxx::__normal_iterator<boost::program_options::basic_option<char> const*, std::vector<boost::program_options::basic_option<char>, std::allocator<boost::program_options::basic_option<char> > > >::__normal_iterator(boost::program_options::basic_option<char> const* const&) 0.00 7.29 0.00 2 0.00 0.00 WaveformBuffer::getSize() const 0.00 7.29 0.00 2 0.00 0.00 boost::filesystem::path::c_str() const 0.00 7.29 0.00 2 0.00 0.00 boost::any::holder<double>::type() const 0.00 7.29 0.00 2 0.00 0.00 boost::any::holder<double>::clone() const 0.00 7.29 0.00 2 0.00 0.00 boost::function1<void, double const&>::operator void (boost::function1<void, double const&>::dummy::*)()() const 0.00 7.29 0.00 2 0.00 0.00 Options::hasEndTime() const 0.00 7.29 0.00 2 0.00 0.00 Options::hasPixelsPerSecond() const 0.00 7.29 0.00 2 0.00 0.00 Options::hasSamplesPerPixel() const 0.00 7.29 0.00 2 0.00 0.00 std::unique_ptr<AudioFileReader, std::default_delete<AudioFileReader> >::operator->() const 0.00 7.29 0.00 2 0.00 0.00 std::_Vector_base<boost::program_options::basic_option<char>, std::allocator<boost::program_options::basic_option<char> > >::_M_get_Tp_allocator() const 0.00 7.29 0.00 2 0.00 0.00 std::_Rb_tree_const_iterator<std::pair<std::string const, std::string> >::_M_const_cast() const 0.00 7.29 0.00 2 0.00 0.00 std::_Rb_tree<std::string, std::pair<std::string const, std::string>, std::_Select1st<std::pair<std::string const, std::string> >, std::less<std::string>, std::allocator<std::pair<std::string const, std::string> > >::size() const 0.00 7.29 0.00 2 0.00 0.00 std::allocator<std::string>::allocator() 0.00 7.29 0.00 2 0.00 0.00 std::_Head_base<0ul, ScaleFactor*, false>::_M_head(std::_Head_base<0ul, ScaleFactor*, false>&) 0.00 7.29 0.00 2 0.00 0.00 std::_Head_base<0ul, AudioFileReader*, false>::_M_head(std::_Head_base<0ul, AudioFileReader*, false>&) 0.00 7.29 0.00 2 0.00 0.00 std::_Tuple_impl<0ul, ScaleFactor*, std::default_delete<ScaleFactor> >::_M_head(std::_Tuple_impl<0ul, ScaleFactor*, std::default_delete<ScaleFactor> >&) 0.00 7.29 0.00 2 0.00 0.00 std::_Tuple_impl<0ul, AudioFileReader*, std::default_delete<AudioFileReader> >::_M_head(std::_Tuple_impl<0ul, AudioFileReader*, std::default_delete<AudioFileReader> >&) 0.00 7.29 0.00 2 0.00 0.00 std::char_traits<char>::length(char const*) 0.00 7.29 0.00 2 0.00 0.00 std::_Vector_base<boost::program_options::basic_option<char>, std::allocator<boost::program_options::basic_option<char> > >::_Vector_impl::_M_swap_data(std::_Vector_base<boost::program_options::basic_option<char>, std::allocator<boost::program_options::basic_option<char> > >::_Vector_impl&) 0.00 7.29 0.00 2 0.00 0.00 std::_Vector_base<boost::program_options::basic_option<char>, std::allocator<boost::program_options::basic_option<char> > >::_Vector_impl::_Vector_impl(std::allocator<boost::program_options::basic_option<char> > const&) 0.00 7.29 0.00 2 0.00 0.00 std::_Vector_base<std::string, std::allocator<std::string> >::_Vector_impl::_Vector_impl() 0.00 7.29 0.00 2 0.00 0.00 std::_Vector_base<std::string, std::allocator<std::string> >::_Vector_base() 0.00 7.29 0.00 2 0.00 0.00 std::_Rb_tree_node<std::pair<std::string const, std::string> >::~_Rb_tree_node() 0.00 7.29 0.00 2 0.00 0.00 std::numeric_limits<unsigned int>::max() 0.00 7.29 0.00 2 0.00 0.00 std::unary_function<double const&, void>::unary_function() 0.00 7.29 0.00 2 0.00 0.00 std::pair<std::string const, std::string>::~pair() 0.00 7.29 0.00 2 0.00 0.00 std::vector<std::string, std::allocator<std::string> >::vector() 0.00 7.29 0.00 2 0.00 0.00 std::_Rb_tree<std::string, std::pair<std::string const, std::string>, std::_Select1st<std::pair<std::string const, std::string> >, std::less<std::string>, std::allocator<std::pair<std::string const, std::string> > >::_M_put_node(std::_Rb_tree_node<std::pair<std::string const, std::string> >*) 0.00 7.29 0.00 2 0.00 0.00 std::_Rb_tree<std::string, std::pair<std::string const, std::string>, std::_Select1st<std::pair<std::string const, std::string> >, std::less<std::string>, std::allocator<std::pair<std::string const, std::string> > >::_M_rightmost() 0.00 7.29 0.00 2 0.00 0.00 std::_Rb_tree<std::string, std::pair<std::string const, std::string>, std::_Select1st<std::pair<std::string const, std::string> >, std::less<std::string>, std::allocator<std::pair<std::string const, std::string> > >::_M_destroy_node(std::_Rb_tree_node<std::pair<std::string const, std::string> >*) 0.00 7.29 0.00 2 0.00 0.00 std::_Rb_tree<std::string, std::pair<std::string const, std::string>, std::_Select1st<std::pair<std::string const, std::string> >, std::less<std::string>, std::allocator<std::pair<std::string const, std::string> > >::_M_get_Node_allocator() 0.00 7.29 0.00 2 0.00 0.00 std::_Rb_tree<std::string, std::pair<std::string const, std::string>, std::_Select1st<std::pair<std::string const, std::string> >, std::less<std::string>, std::allocator<std::pair<std::string const, std::string> > >::_S_left(std::_Rb_tree_node_base*) 0.00 7.29 0.00 2 0.00 0.00 std::_Rb_tree<std::string, std::pair<std::string const, std::string>, std::_Select1st<std::pair<std::string const, std::string> >, std::less<std::string>, std::allocator<std::pair<std::string const, std::string> > >::_M_begin() 0.00 7.29 0.00 2 0.00 0.00 std::_Rb_tree<std::string, std::pair<std::string const, std::string>, std::_Select1st<std::pair<std::string const, std::string> >, std::less<std::string>, std::allocator<std::pair<std::string const, std::string> > >::_S_right(std::_Rb_tree_node_base*) 0.00 7.29 0.00 2 0.00 0.00 _ZSt12__get_helperILm0EP11ScaleFactorISt14default_deleteIS0_EEENSt9__add_refIT0_E4typeERSt11_Tuple_implIXT_EIS5_DpT1_EE 0.00 7.29 0.00 2 0.00 0.00 _ZSt12__get_helperILm0EP15AudioFileReaderISt14default_deleteIS0_EEENSt9__add_refIT0_E4typeERSt11_Tuple_implIXT_EIS5_DpT1_EE 0.00 7.29 0.00 2 0.00 0.00 std::__add_ref<std::tuple_element<0ul, std::tuple<ScaleFactor*, std::default_delete<ScaleFactor> > >::type>::type std::get<0ul, ScaleFactor*, std::default_delete<ScaleFactor> >(std::tuple<ScaleFactor*, std::default_delete<ScaleFactor> >&) 0.00 7.29 0.00 2 0.00 0.00 std::__add_ref<std::tuple_element<0ul, std::tuple<AudioFileReader*, std::default_delete<AudioFileReader> > >::type>::type std::get<0ul, AudioFileReader*, std::default_delete<AudioFileReader> >(std::tuple<AudioFileReader*, std::default_delete<AudioFileReader> >&) 0.00 7.29 0.00 2 0.00 0.00 std::isinf(double) 0.00 7.29 0.00 2 0.00 0.00 std::isnan(double) 0.00 7.29 0.00 2 0.00 0.00 std::_Rb_tree_node<std::pair<std::string const, std::string> >*& std::forward<std::_Rb_tree_node<std::pair<std::string const, std::string> >*&>(std::remove_reference<std::_Rb_tree_node<std::pair<std::string const, std::string> >*&>::type&) 0.00 7.29 0.00 1 0.00 0.00 BstdFileDestroy 0.00 7.29 0.00 1 0.00 0.00 NewBstdFile 0.00 7.29 0.00 1 0.00 0.00 _GLOBAL__sub_I__ZN11ScaleFactorD2Ev 0.00 7.29 0.00 1 0.00 0.00 _GLOBAL__sub_I__ZN13OptionHandlerC2Ev 0.00 7.29 0.00 1 0.00 0.00 _GLOBAL__sub_I__ZN13WavFileWriterC2EPKc 0.00 7.29 0.00 1 0.00 0.00 _GLOBAL__sub_I__ZN14WaveformBufferC2Ev 0.00 7.29 0.00 1 0.00 0.00 _GLOBAL__sub_I__ZN14WaveformColorsC2Ev 0.00 7.29 0.00 1 0.00 0.00 _GLOBAL__sub_I__ZN15AudioFileReaderC2Ev 0.00 7.29 0.00 1 0.00 0.00 _GLOBAL__sub_I__ZN15GdImageRendererC2Ev 0.00 7.29 0.00 1 0.00 0.00 _GLOBAL__sub_I__ZN16WaveformRescalerC2Ev 0.00 7.29 0.00 1 0.00 0.00 _GLOBAL__sub_I__ZN18Mp3AudioFileReaderC2Ev 0.00 7.29 0.00 1 0.00 0.00 _GLOBAL__sub_I__ZN22SndFileAudioFileReaderC2Ev 0.00 7.29 0.00 1 0.00 0.00 _GLOBAL__sub_I__ZN4RGBAC2Ev 0.00 7.29 0.00 1 0.00 0.00 _GLOBAL__sub_I__ZN7OptionsC2Ev 0.00 7.29 0.00 1 0.00 0.00 _GLOBAL__sub_I_output_stream 0.00 7.29 0.00 1 0.00 0.00 __static_initialization_and_destruction_0(int, int) 0.00 7.29 0.00 1 0.00 0.00 __static_initialization_and_destruction_0(int, int) 0.00 7.29 0.00 1 0.00 0.00 __static_initialization_and_destruction_0(int, int) 0.00 7.29 0.00 1 0.00 0.00 __static_initialization_and_destruction_0(int, int) 0.00 7.29 0.00 1 0.00 0.00 __static_initialization_and_destruction_0(int, int) 0.00 7.29 0.00 1 0.00 0.00 __static_initialization_and_destruction_0(int, int) 0.00 7.29 0.00 1 0.00 0.00 __static_initialization_and_destruction_0(int, int) 0.00 7.29 0.00 1 0.00 0.00 __static_initialization_and_destruction_0(int, int) 0.00 7.29 0.00 1 0.00 0.00 __static_initialization_and_destruction_0(int, int) 0.00 7.29 0.00 1 0.00 0.00 __static_initialization_and_destruction_0(int, int) 0.00 7.29 0.00 1 0.00 0.00 __static_initialization_and_destruction_0(int, int) 0.00 7.29 0.00 1 0.00 0.00 __static_initialization_and_destruction_0(int, int) 0.00 7.29 0.00 1 0.00 0.00 __static_initialization_and_destruction_0(int, int) 0.00 7.29 0.00 1 0.00 0.00 createScaleFactor(Options const&) 0.00 7.29 0.00 1 0.00 0.00 createAudioFileReader(boost::filesystem::path const&) 0.00 7.29 0.00 1 0.00 0.00 ScaleFactor::ScaleFactor() 0.00 7.29 0.00 1 0.00 0.00 ScaleFactor::~ScaleFactor() 0.00 7.29 0.00 1 0.00 7.29 OptionHandler::generateWaveformData(boost::filesystem::path const&, boost::filesystem::path const&, Options const&) 0.00 7.29 0.00 1 0.00 7.29 OptionHandler::run(Options const&) 0.00 7.29 0.00 1 0.00 0.00 OptionHandler::OptionHandler() 0.00 7.29 0.00 1 0.00 0.00 AudioProcessor::AudioProcessor() 0.00 7.29 0.00 1 0.00 0.00 AudioProcessor::~AudioProcessor() 0.00 7.29 0.00 1 0.00 0.00 WaveformBuffer::setSampleRate(int) 0.00 7.29 0.00 1 0.00 0.00 WaveformBuffer::setSamplesPerPixel(int) 0.00 7.29 0.00 1 0.00 0.00 WaveformBuffer::WaveformBuffer() 0.00 7.29 0.00 1 0.00 0.00 WaveformBuffer::~WaveformBuffer() 0.00 7.29 0.00 1 0.00 0.00 AudioFileReader::AudioFileReader() 0.00 7.29 0.00 1 0.00 0.00 AudioFileReader::~AudioFileReader() 0.00 7.29 0.00 1 0.00 0.00 WaveformGenerator::done() 0.00 7.29 0.00 1 0.00 0.00 WaveformGenerator::init(int, int, int) 0.00 7.29 0.00 1 0.00 0.00 WaveformGenerator::WaveformGenerator(WaveformBuffer&, ScaleFactor const&) 0.00 7.29 0.00 1 0.00 0.00 WaveformGenerator::~WaveformGenerator() 0.00 7.29 0.00 1 0.00 0.00 Mp3AudioFileReader::open(char const*) 0.00 7.29 0.00 1 0.00 0.00 Mp3AudioFileReader::Mp3AudioFileReader() 0.00 7.29 0.00 1 0.00 0.00 Mp3AudioFileReader::~Mp3AudioFileReader() 0.00 7.29 0.00 1 0.00 0.00 Mp3AudioFileReader::~Mp3AudioFileReader() 0.00 7.29 0.00 1 0.00 0.00 SamplesPerPixelScaleFactor::SamplesPerPixelScaleFactor(int) 0.00 7.29 0.00 1 0.00 0.00 SamplesPerPixelScaleFactor::~SamplesPerPixelScaleFactor() 0.00 7.29 0.00 1 0.00 0.00 SamplesPerPixelScaleFactor::~SamplesPerPixelScaleFactor() 0.00 7.29 0.00 1 0.00 0.00 std::string boost::lexical_cast<std::string, std::string>(std::string const&) 0.00 7.29 0.00 1 0.00 0.00 std::vector<std::string, std::allocator<std::string> > boost::program_options::to_internal<std::string>(std::vector<std::string, std::allocator<std::string> > const&) 0.00 7.29 0.00 1 0.00 0.00 boost::program_options::typed_value<std::string, char>::default_value(std::string const&) 0.00 7.29 0.00 1 0.00 0.00 boost::program_options::variables_map::~variables_map() 0.00 7.29 0.00 1 0.00 0.00 boost::program_options::options_description::~options_description() 0.00 7.29 0.00 1 0.00 0.00 boost::program_options::basic_parsed_options<char>::basic_parsed_options(boost::program_options::options_description const*, int) 0.00 7.29 0.00 1 0.00 0.00 boost::program_options::basic_parsed_options<char>::basic_parsed_options(boost::program_options::basic_parsed_options<char> const&) 0.00 7.29 0.00 1 0.00 0.00 boost::program_options::abstract_variables_map::~abstract_variables_map() 0.00 7.29 0.00 1 0.00 0.00 boost::program_options::basic_command_line_parser<char>::run() 0.00 7.29 0.00 1 0.00 0.00 boost::program_options::basic_command_line_parser<char>::options(boost::program_options::options_description const&) 0.00 7.29 0.00 1 0.00 0.00 boost::program_options::basic_command_line_parser<char>::basic_command_line_parser(int, char const* const*) 0.00 7.29 0.00 1 0.00 0.00 boost::program_options::basic_command_line_parser<char>::~basic_command_line_parser() 0.00 7.29 0.00 1 0.00 0.00 std::vector<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > > boost::program_options::detail::make_vector<char, char const* const*>(char const* const*, char const* const*) 0.00 7.29 0.00 1 0.00 0.00 boost::program_options::detail::cmdline::~cmdline() 0.00 7.29 0.00 1 0.00 0.00 boost::any::any<std::string>(std::string const&) 0.00 7.29 0.00 1 0.00 0.00 boost::detail::lexical_cast_copy<std::string>::lexical_cast_impl(std::string const&) 0.00 7.29 0.00 1 0.00 0.00 boost::function1<std::pair<std::string, std::string>, std::string const&>::clear() 0.00 7.29 0.00 1 0.00 0.00 boost::function1<std::pair<std::string, std::string>, std::string const&>::~function1() 0.00 7.29 0.00 1 0.00 0.00 boost::function1<std::vector<boost::program_options::basic_option<char>, std::allocator<boost::program_options::basic_option<char> > >, std::vector<std::string, std::allocator<std::string> >&>::clear() 0.00 7.29 0.00 1 0.00 0.00 boost::function1<std::vector<boost::program_options::basic_option<char>, std::allocator<boost::program_options::basic_option<char> > >, std::vector<std::string, std::allocator<std::string> >&>::~function1() 0.00 7.29 0.00 1 0.00 0.00 Options::parseCommandLine(int, char const* const*) 0.00 7.29 0.00 1 0.00 0.00 Options::Options() 0.00 7.29 0.00 1 0.00 0.00 Options::~Options() 0.00 7.29 0.00 1 0.00 0.00 __gnu_cxx::new_allocator<boost::shared_ptr<boost::program_options::option_description> >::deallocate(boost::shared_ptr<boost::program_options::option_description>*, unsigned long) 0.00 7.29 0.00 1 0.00 0.00 __gnu_cxx::new_allocator<boost::shared_ptr<boost::program_options::option_description> >::~new_allocator() 0.00 7.29 0.00 1 0.00 0.00 __gnu_cxx::new_allocator<boost::shared_ptr<boost::program_options::options_description> >::~new_allocator() 0.00 7.29 0.00 1 0.00 0.00 __gnu_cxx::new_allocator<boost::program_options::basic_option<char> >::allocate(unsigned long, void const*) 0.00 7.29 0.00 1 0.00 0.00 __gnu_cxx::new_allocator<boost::program_options::basic_option<char> >::new_allocator() 0.00 7.29 0.00 1 0.00 0.00 __gnu_cxx::new_allocator<std::_Rb_tree_node<std::string> >::~new_allocator() 0.00 7.29 0.00 1 0.00 0.00 __gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<std::string const, boost::program_options::variable_value> > >::~new_allocator() 0.00 7.29 0.00 1 0.00 0.00 __gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<std::string const, std::string> > >::~new_allocator() 0.00 7.29 0.00 1 0.00 0.00 __gnu_cxx::new_allocator<unsigned long>::deallocate(unsigned long*, unsigned long) 0.00 7.29 0.00 1 0.00 0.00 __gnu_cxx::new_allocator<unsigned long>::~new_allocator() 0.00 7.29 0.00 1 0.00 0.00 __gnu_cxx::new_allocator<short>::new_allocator() 0.00 7.29 0.00 1 0.00 0.00 __gnu_cxx::new_allocator<short>::~new_allocator() 0.00 7.29 0.00 1 0.00 0.00 __gnu_cxx::__alloc_traits<std::allocator<boost::program_options::basic_option<char> > >::_S_select_on_copy(std::allocator<boost::program_options::basic_option<char> > const&) 0.00 7.29 0.00 1 0.00 0.00 __gnu_cxx::__alloc_traits<std::allocator<boost::program_options::basic_option<char> > >::_S_propagate_on_move_assign() 0.00 7.29 0.00 1 0.00 0.02 WaveformBuffer::save(char const*, int) const 0.00 7.29 0.00 1 0.00 0.00 SamplesPerPixelScaleFactor::getSamplesPerPixel(int) const 0.00 7.29 0.00 1 0.00 0.00 boost::any::holder<std::string>::clone() const 0.00 7.29 0.00 1 0.00 0.00 Options::getVersion() const 0.00 7.29 0.00 1 0.00 0.00 Options::getInputFilename() const 0.00 7.29 0.00 1 0.00 0.00 Options::getOutputFilename() const 0.00 7.29 0.00 1 0.00 0.00 Options::getSamplesPerPixel() const 0.00 7.29 0.00 1 0.00 0.00 Options::getBits() const 0.00 7.29 0.00 1 0.00 0.00 Options::getHelp() const 0.00 7.29 0.00 1 0.00 0.00 __gnu_cxx::new_allocator<boost::program_options::basic_option<char> >::max_size() const 0.00 7.29 0.00 1 0.00 0.00 std::_Select1st<std::pair<std::string const, std::string> >::operator()(std::pair<std::string const, std::string> const&) const 0.00 7.29 0.00 1 0.00 0.00 std::unique_ptr<ScaleFactor, std::default_delete<ScaleFactor> >::get() const 0.00 7.29 0.00 1 0.00 0.00 std::unique_ptr<ScaleFactor, std::default_delete<ScaleFactor> >::operator*() const 0.00 7.29 0.00 1 0.00 0.00 std::unique_ptr<AudioFileReader, std::default_delete<AudioFileReader> >::operator bool() const 0.00 7.29 0.00 1 0.00 0.00 std::_Vector_base<boost::program_options::basic_option<char>, std::allocator<boost::program_options::basic_option<char> > >::get_allocator() const 0.00 7.29 0.00 1 0.00 0.00 std::default_delete<ScaleFactor>::operator()(ScaleFactor*) const 0.00 7.29 0.00 1 0.00 0.00 std::default_delete<AudioFileReader>::operator()(AudioFileReader*) const 0.00 7.29 0.00 1 0.00 0.00 std::_Rb_tree_iterator<std::pair<std::string const, std::string> >::operator==(std::_Rb_tree_iterator<std::pair<std::string const, std::string> > const&) const 0.00 7.29 0.00 1 0.00 0.00 std::vector<boost::program_options::basic_option<char>, std::allocator<boost::program_options::basic_option<char> > >::end() const 0.00 7.29 0.00 1 0.00 0.00 std::vector<boost::program_options::basic_option<char>, std::allocator<boost::program_options::basic_option<char> > >::size() const 0.00 7.29 0.00 1 0.00 0.00 std::vector<boost::program_options::basic_option<char>, std::allocator<boost::program_options::basic_option<char> > >::begin() const 0.00 7.29 0.00 1 0.00 0.00 std::allocator<boost::shared_ptr<boost::program_options::option_description> >::~allocator() 0.00 7.29 0.00 1 0.00 0.00 std::allocator<boost::shared_ptr<boost::program_options::options_description> >::~allocator() 0.00 7.29 0.00 1 0.00 0.00 std::allocator<boost::program_options::basic_option<char> >::allocator() 0.00 7.29 0.00 1 0.00 0.00 std::allocator<std::_Rb_tree_node<std::string> >::~allocator() 0.00 7.29 0.00 1 0.00 0.00 std::allocator<std::_Rb_tree_node<std::pair<std::string const, boost::program_options::variable_value> > >::~allocator() 0.00 7.29 0.00 1 0.00 0.00 std::allocator<std::_Rb_tree_node<std::pair<std::string const, std::string> > >::~allocator() 0.00 7.29 0.00 1 0.00 0.00 std::allocator<unsigned long>::~allocator() 0.00 7.29 0.00 1 0.00 0.00 std::allocator<short>::allocator() 0.00 7.29 0.00 1 0.00 0.00 std::allocator<short>::~allocator() 0.00 7.29 0.00 1 0.00 0.00 std::_Head_base<0ul, ScaleFactor*, false>::_M_head(std::_Head_base<0ul, ScaleFactor*, false> const&) 0.00 7.29 0.00 1 0.00 0.00 std::_Head_base<1ul, std::default_delete<ScaleFactor>, true>::_M_head(std::_Head_base<1ul, std::default_delete<ScaleFactor>, true>&) 0.00 7.29 0.00 1 0.00 0.00 std::_Head_base<1ul, std::default_delete<AudioFileReader>, true>::_M_head(std::_Head_base<1ul, std::default_delete<AudioFileReader>, true>&) 0.00 7.29 0.00 1 0.00 0.00 std::unique_ptr<ScaleFactor, std::default_delete<ScaleFactor> >::get_deleter() 0.00 7.29 0.00 1 0.00 0.00 std::unique_ptr<ScaleFactor, std::default_delete<ScaleFactor> >::reset(ScaleFactor*) 0.00 7.29 0.00 1 0.00 0.00 std::unique_ptr<ScaleFactor, std::default_delete<ScaleFactor> >::~unique_ptr() 0.00 7.29 0.00 1 0.00 0.00 std::unique_ptr<AudioFileReader, std::default_delete<AudioFileReader> >::get_deleter() 0.00 7.29 0.00 1 0.00 0.00 std::unique_ptr<AudioFileReader, std::default_delete<AudioFileReader> >::reset(AudioFileReader*) 0.00 7.29 0.00 1 0.00 0.00 std::unique_ptr<AudioFileReader, std::default_delete<AudioFileReader> >::~unique_ptr() 0.00 7.29 0.00 1 0.00 0.00 std::_Tuple_impl<0ul, ScaleFactor*, std::default_delete<ScaleFactor> >::_M_head(std::_Tuple_impl<0ul, ScaleFactor*, std::default_delete<ScaleFactor> > const&) 0.00 7.29 0.00 1 0.00 0.00 std::_Tuple_impl<1ul, std::default_delete<AudioFileReader> >::_M_head(std::_Tuple_impl<1ul, std::default_delete<AudioFileReader> >&) 0.00 7.29 0.00 1 0.00 0.00 std::_Tuple_impl<1ul, std::default_delete<ScaleFactor> >::_M_head(std::_Tuple_impl<1ul, std::default_delete<ScaleFactor> >&) 0.00 7.29 0.00 1 0.00 0.00 void std::_Destroy_aux<false>::__destroy<boost::shared_ptr<boost::program_options::option_description>*>(boost::shared_ptr<boost::program_options::option_description>*, boost::shared_ptr<boost::program_options::option_description>*) 0.00 7.29 0.00 1 0.00 0.00 void std::_Destroy_aux<false>::__destroy<boost::shared_ptr<boost::program_options::options_description>*>(boost::shared_ptr<boost::program_options::options_description>*, boost::shared_ptr<boost::program_options::options_description>*) 0.00 7.29 0.00 1 0.00 0.00 std::_Vector_base<boost::shared_ptr<boost::program_options::option_description>, std::allocator<boost::shared_ptr<boost::program_options::option_description> > >::_Vector_impl::~_Vector_impl() 0.00 7.29 0.00 1 0.00 0.00 std::_Vector_base<boost::shared_ptr<boost::program_options::option_description>, std::allocator<boost::shared_ptr<boost::program_options::option_description> > >::_M_deallocate(boost::shared_ptr<boost::program_options::option_description>*, unsigned long) 0.00 7.29 0.00 1 0.00 0.00 std::_Vector_base<boost::shared_ptr<boost::program_options::option_description>, std::allocator<boost::shared_ptr<boost::program_options::option_description> > >::_M_get_Tp_allocator() 0.00 7.29 0.00 1 0.00 0.00 std::_Vector_base<boost::shared_ptr<boost::program_options::option_description>, std::allocator<boost::shared_ptr<boost::program_options::option_description> > >::~_Vector_base() 0.00 7.29 0.00 1 0.00 0.00 std::_Vector_base<boost::shared_ptr<boost::program_options::options_description>, std::allocator<boost::shared_ptr<boost::program_options::options_description> > >::_Vector_impl::~_Vector_impl() 0.00 7.29 0.00 1 0.00 0.00 std::_Vector_base<boost::shared_ptr<boost::program_options::options_description>, std::allocator<boost::shared_ptr<boost::program_options::options_description> > >::_M_deallocate(boost::shared_ptr<boost::program_options::options_description>*, unsigned long) 0.00 7.29 0.00 1 0.00 0.00 std::_Vector_base<boost::shared_ptr<boost::program_options::options_description>, std::allocator<boost::shared_ptr<boost::program_options::options_description> > >::_M_get_Tp_allocator() 0.00 7.29 0.00 1 0.00 0.00 std::_Vector_base<boost::shared_ptr<boost::program_options::options_description>, std::allocator<boost::shared_ptr<boost::program_options::options_description> > >::~_Vector_base() 0.00 7.29 0.00 1 0.00 0.00 std::_Vector_base<boost::program_options::basic_option<char>, std::allocator<boost::program_options::basic_option<char> > >::_M_allocate(unsigned long) 0.00 7.29 0.00 1 0.00 0.00 std::_Vector_base<boost::program_options::basic_option<char>, std::allocator<boost::program_options::basic_option<char> > >::_Vector_impl::_Vector_impl() 0.00 7.29 0.00 1 0.00 0.00 std::_Vector_base<boost::program_options::basic_option<char>, std::allocator<boost::program_options::basic_option<char> > >::_M_create_storage(unsigned long) 0.00 7.29 0.00 1 0.00 0.00 std::_Vector_base<boost::program_options::basic_option<char>, std::allocator<boost::program_options::basic_option<char> > >::_Vector_base(std::allocator<boost::program_options::basic_option<char> > const&) 0.00 7.29 0.00 1 0.00 0.00 std::_Vector_base<boost::program_options::basic_option<char>, std::allocator<boost::program_options::basic_option<char> > >::_Vector_base(unsigned long, std::allocator<boost::program_options::basic_option<char> > const&) 0.00 7.29 0.00 1 0.00 0.00 std::_Vector_base<boost::program_options::basic_option<char>, std::allocator<boost::program_options::basic_option<char> > >::_Vector_base() 0.00 7.29 0.00 1 0.00 0.00 std::_Vector_base<short, std::allocator<short> >::_Vector_impl::_Vector_impl() 0.00 7.29 0.00 1 0.00 0.00 std::_Vector_base<short, std::allocator<short> >::_Vector_impl::~_Vector_impl() 0.00 7.29 0.00 1 0.00 0.00 std::_Vector_base<short, std::allocator<short> >::_Vector_base() 0.00 7.29 0.00 1 0.00 0.00 std::_Vector_base<short, std::allocator<short> >::~_Vector_base() 0.00 7.29 0.00 1 0.00 0.00 std::_Bvector_base<std::allocator<bool> >::_Bvector_impl::~_Bvector_impl() 0.00 7.29 0.00 1 0.00 0.00 std::_Bvector_base<std::allocator<bool> >::_M_deallocate() 0.00 7.29 0.00 1 0.00 0.00 std::_Bvector_base<std::allocator<bool> >::~_Bvector_base() 0.00 7.29 0.00 1 0.00 0.00 std::allocator_traits<std::allocator<boost::program_options::basic_option<char> > >::select_on_container_copy_construction(std::allocator<boost::program_options::basic_option<char> > const&) 0.00 7.29 0.00 1 0.00 0.00 std::enable_if<!std::allocator_traits<std::allocator<boost::program_options::basic_option<char> > >::__select_helper<std::allocator<boost::program_options::basic_option<char> > const>::value, std::allocator<boost::program_options::basic_option<char> > const>::type std::allocator_traits<std::allocator<boost::program_options::basic_option<char> > >::_S_select<std::allocator<boost::program_options::basic_option<char> > const>(std::allocator<boost::program_options::basic_option<char> > const&) 0.00 7.29 0.00 1 0.00 0.00 boost::program_options::basic_option<char>* std::__uninitialized_copy<false>::__uninit_copy<__gnu_cxx::__normal_iterator<boost::program_options::basic_option<char> const*, std::vector<boost::program_options::basic_option<char>, std::allocator<boost::program_options::basic_option<char> > > >, boost::program_options::basic_option<char>*>(__gnu_cxx::__normal_iterator<boost::program_options::basic_option<char> const*, std::vector<boost::program_options::basic_option<char>, std::allocator<boost::program_options::basic_option<char> > > >, __gnu_cxx::__normal_iterator<boost::program_options::basic_option<char> const*, std::vector<boost::program_options::basic_option<char>, std::allocator<boost::program_options::basic_option<char> > > >, boost::program_options::basic_option<char>*) 0.00 7.29 0.00 1 0.00 0.00 std::map<std::string, boost::program_options::variable_value, std::less<std::string>, std::allocator<std::pair<std::string const, boost::program_options::variable_value> > >::~map() 0.00 7.29 0.00 1 0.00 0.00 std::map<std::string, std::string, std::less<std::string>, std::allocator<std::pair<std::string const, std::string> > >::~map() 0.00 7.29 0.00 1 0.00 0.00 std::set<std::string, std::less<std::string>, std::allocator<std::string> >::~set() 0.00 7.29 0.00 1 0.00 0.00 std::pair<std::_Rb_tree_node_base*, std::_Rb_tree_node_base*>::pair<std::_Rb_tree_node<std::pair<std::string const, std::string> >*&, std::_Rb_tree_node<std::pair<std::string const, std::string> >*&, void>(std::_Rb_tree_node<std::pair<std::string const, std::string> >*&, std::_Rb_tree_node<std::pair<std::string const, std::string> >*&) 0.00 7.29 0.00 1 0.00 0.00 std::pair<std::_Rb_tree_node_base*, std::_Rb_tree_node_base*>::pair<std::_Rb_tree_node_base*&, void>(std::_Rb_tree_node_base* const&, std::_Rb_tree_node_base*&) 0.00 7.29 0.00 1 0.00 0.00 std::vector<boost::shared_ptr<boost::program_options::option_description>, std::allocator<boost::shared_ptr<boost::program_options::option_description> > >::~vector() 0.00 7.29 0.00 1 0.00 0.00 std::vector<boost::shared_ptr<boost::program_options::options_description>, std::allocator<boost::shared_ptr<boost::program_options::options_description> > >::~vector() 0.00 7.29 0.00 1 0.00 0.00 std::vector<boost::program_options::basic_option<char>, std::allocator<boost::program_options::basic_option<char> > >::_M_move_assign(std::vector<boost::program_options::basic_option<char>, std::allocator<boost::program_options::basic_option<char> > >&&, std::integral_constant<bool, true>) 0.00 7.29 0.00 1 0.00 0.00 std::vector<boost::program_options::basic_option<char>, std::allocator<boost::program_options::basic_option<char> > >::vector(std::allocator<boost::program_options::basic_option<char> > const&) 0.00 7.29 0.00 1 0.00 0.00 std::vector<boost::program_options::basic_option<char>, std::allocator<boost::program_options::basic_option<char> > >::vector(std::vector<boost::program_options::basic_option<char>, std::allocator<boost::program_options::basic_option<char> > > const&) 0.00 7.29 0.00 1 0.00 0.00 std::vector<boost::program_options::basic_option<char>, std::allocator<boost::program_options::basic_option<char> > >::vector() 0.00 7.29 0.00 1 0.00 0.00 std::vector<boost::program_options::basic_option<char>, std::allocator<boost::program_options::basic_option<char> > >::operator=(std::vector<boost::program_options::basic_option<char>, std::allocator<boost::program_options::basic_option<char> > >&&) 0.00 7.29 0.00 1 0.00 0.00 std::vector<bool, std::allocator<bool> >::~vector() 0.00 7.29 0.00 1 0.00 0.00 std::vector<short, std::allocator<short> >::vector() 0.00 7.29 0.00 1 0.00 0.00 std::vector<short, std::allocator<short> >::~vector() 0.00 7.29 0.00 1 0.00 0.00 std::_Rb_tree<std::string, std::string, std::_Identity<std::string>, std::less<std::string>, std::allocator<std::string> >::_Rb_tree_impl<std::less<std::string>, true>::~_Rb_tree_impl() 0.00 7.29 0.00 1 0.00 0.00 std::_Rb_tree<std::string, std::string, std::_Identity<std::string>, std::less<std::string>, std::allocator<std::string> >::_M_begin() 0.00 7.29 0.00 1 0.00 0.00 std::_Rb_tree<std::string, std::string, std::_Identity<std::string>, std::less<std::string>, std::allocator<std::string> >::_M_erase(std::_Rb_tree_node<std::string>*) 0.00 7.29 0.00 1 0.00 0.00 std::_Rb_tree<std::string, std::string, std::_Identity<std::string>, std::less<std::string>, std::allocator<std::string> >::~_Rb_tree() 0.00 7.29 0.00 1 0.00 0.00 std::_Rb_tree<std::string, std::pair<std::string const, boost::program_options::variable_value>, std::_Select1st<std::pair<std::string const, boost::program_options::variable_value> >, std::less<std::string>, std::allocator<std::pair<std::string const, boost::program_options::variable_value> > >::_Rb_tree_impl<std::less<std::string>, true>::~_Rb_tree_impl() 0.00 7.29 0.00 1 0.00 0.00 std::_Rb_tree<std::string, std::pair<std::string const, boost::program_options::variable_value>, std::_Select1st<std::pair<std::string const, boost::program_options::variable_value> >, std::less<std::string>, std::allocator<std::pair<std::string const, boost::program_options::variable_value> > >::_M_begin() 0.00 7.29 0.00 1 0.00 0.00 std::_Rb_tree<std::string, std::pair<std::string const, boost::program_options::variable_value>, std::_Select1st<std::pair<std::string const, boost::program_options::variable_value> >, std::less<std::string>, std::allocator<std::pair<std::string const, boost::program_options::variable_value> > >::_M_erase(std::_Rb_tree_node<std::pair<std::string const, boost::program_options::variable_value> >*) 0.00 7.29 0.00 1 0.00 0.00 std::_Rb_tree<std::string, std::pair<std::string const, boost::program_options::variable_value>, std::_Select1st<std::pair<std::string const, boost::program_options::variable_value> >, std::less<std::string>, std::allocator<std::pair<std::string const, boost::program_options::variable_value> > >::~_Rb_tree() 0.00 7.29 0.00 1 0.00 0.00 std::_Rb_tree<std::string, std::pair<std::string const, std::string>, std::_Select1st<std::pair<std::string const, std::string> >, std::less<std::string>, std::allocator<std::pair<std::string const, std::string> > >::_Rb_tree_impl<std::less<std::string>, true>::~_Rb_tree_impl() 0.00 7.29 0.00 1 0.00 0.00 std::_Rb_tree<std::string, std::pair<std::string const, std::string>, std::_Select1st<std::pair<std::string const, std::string> >, std::less<std::string>, std::allocator<std::pair<std::string const, std::string> > >::_M_get_insert_unique_pos(std::string const&) 0.00 7.29 0.00 1 0.00 0.00 std::_Rb_tree<std::string, std::pair<std::string const, std::string>, std::_Select1st<std::pair<std::string const, std::string> >, std::less<std::string>, std::allocator<std::pair<std::string const, std::string> > >::begin() 0.00 7.29 0.00 1 0.00 0.00 std::_Rb_tree<std::string, std::pair<std::string const, std::string>, std::_Select1st<std::pair<std::string const, std::string> >, std::less<std::string>, std::allocator<std::pair<std::string const, std::string> > >::_S_key(std::_Rb_tree_node_base const*) 0.00 7.29 0.00 1 0.00 0.00 std::_Rb_tree<std::string, std::pair<std::string const, std::string>, std::_Select1st<std::pair<std::string const, std::string> >, std::less<std::string>, std::allocator<std::pair<std::string const, std::string> > >::_M_erase(std::_Rb_tree_node<std::pair<std::string const, std::string> >*) 0.00 7.29 0.00 1 0.00 0.00 std::_Rb_tree<std::string, std::pair<std::string const, std::string>, std::_Select1st<std::pair<std::string const, std::string> >, std::less<std::string>, std::allocator<std::pair<std::string const, std::string> > >::_S_value(std::_Rb_tree_node_base const*) 0.00 7.29 0.00 1 0.00 0.00 std::_Rb_tree<std::string, std::pair<std::string const, std::string>, std::_Select1st<std::pair<std::string const, std::string> >, std::less<std::string>, std::allocator<std::pair<std::string const, std::string> > >::~_Rb_tree() 0.00 7.29 0.00 1 0.00 0.00 _ZSt12__get_helperILm0EP11ScaleFactorISt14default_deleteIS0_EEENSt11__add_c_refIT0_E4typeERKSt11_Tuple_implIXT_EIS5_DpT1_EE 0.00 7.29 0.00 1 0.00 0.00 std::__add_ref<std::default_delete<ScaleFactor> >::type std::__get_helper<1ul, std::default_delete<ScaleFactor>>(std::_Tuple_impl<1ul, std::default_delete<ScaleFactor>>&) 0.00 7.29 0.00 1 0.00 0.00 std::__add_ref<std::default_delete<AudioFileReader> >::type std::__get_helper<1ul, std::default_delete<AudioFileReader>>(std::_Tuple_impl<1ul, std::default_delete<AudioFileReader>>&) 0.00 7.29 0.00 1 0.00 0.00 void std::__alloc_on_move<std::allocator<boost::program_options::basic_option<char> > >(std::allocator<boost::program_options::basic_option<char> >&, std::allocator<boost::program_options::basic_option<char> >&) 0.00 7.29 0.00 1 0.00 0.00 void std::__do_alloc_on_move<std::allocator<boost::program_options::basic_option<char> > >(std::allocator<boost::program_options::basic_option<char> >&, std::allocator<boost::program_options::basic_option<char> >&, std::integral_constant<bool, true>) 0.00 7.29 0.00 1 0.00 0.00 boost::program_options::basic_option<char>* std::uninitialized_copy<__gnu_cxx::__normal_iterator<boost::program_options::basic_option<char> const*, std::vector<boost::program_options::basic_option<char>, std::allocator<boost::program_options::basic_option<char> > > >, boost::program_options::basic_option<char>*>(__gnu_cxx::__normal_iterator<boost::program_options::basic_option<char> const*, std::vector<boost::program_options::basic_option<char>, std::allocator<boost::program_options::basic_option<char> > > >, __gnu_cxx::__normal_iterator<boost::program_options::basic_option<char> const*, std::vector<boost::program_options::basic_option<char>, std::allocator<boost::program_options::basic_option<char> > > >, boost::program_options::basic_option<char>*) 0.00 7.29 0.00 1 0.00 0.00 boost::program_options::basic_option<char>* std::__uninitialized_copy_a<__gnu_cxx::__normal_iterator<boost::program_options::basic_option<char> const*, std::vector<boost::program_options::basic_option<char>, std::allocator<boost::program_options::basic_option<char> > > >, boost::program_options::basic_option<char>*, boost::program_options::basic_option<char> >(__gnu_cxx::__normal_iterator<boost::program_options::basic_option<char> const*, std::vector<boost::program_options::basic_option<char>, std::allocator<boost::program_options::basic_option<char> > > >, __gnu_cxx::__normal_iterator<boost::program_options::basic_option<char> const*, std::vector<boost::program_options::basic_option<char>, std::allocator<boost::program_options::basic_option<char> > > >, boost::program_options::basic_option<char>*, std::allocator<boost::program_options::basic_option<char> >&) 0.00 7.29 0.00 1 0.00 0.00 std::__add_c_ref<std::tuple_element<0ul, std::tuple<ScaleFactor*, std::default_delete<ScaleFactor> > >::type>::type std::get<0ul, ScaleFactor*, std::default_delete<ScaleFactor> >(std::tuple<ScaleFactor*, std::default_delete<ScaleFactor> > const&) 0.00 7.29 0.00 1 0.00 0.00 std::__add_ref<std::tuple_element<1ul, std::tuple<AudioFileReader*, std::default_delete<AudioFileReader> > >::type>::type std::get<1ul, AudioFileReader*, std::default_delete<AudioFileReader> >(std::tuple<AudioFileReader*, std::default_delete<AudioFileReader> >&) 0.00 7.29 0.00 1 0.00 0.00 std::__add_ref<std::tuple_element<1ul, std::tuple<ScaleFactor*, std::default_delete<ScaleFactor> > >::type>::type std::get<1ul, ScaleFactor*, std::default_delete<ScaleFactor> >(std::tuple<ScaleFactor*, std::default_delete<ScaleFactor> >&) 0.00 7.29 0.00 1 0.00 0.00 std::remove_reference<std::allocator<boost::program_options::basic_option<char> >&>::type&& std::move<std::allocator<boost::program_options::basic_option<char> >&>(std::allocator<boost::program_options::basic_option<char> >&) 0.00 7.29 0.00 1 0.00 0.00 std::remove_reference<std::vector<boost::program_options::basic_option<char>, std::allocator<boost::program_options::basic_option<char> > >&>::type&& std::move<std::vector<boost::program_options::basic_option<char>, std::allocator<boost::program_options::basic_option<char> > >&>(std::vector<boost::program_options::basic_option<char>, std::allocator<boost::program_options::basic_option<char> > >&) 0.00 7.29 0.00 1 0.00 0.00 void std::swap<ScaleFactor*>(ScaleFactor*&, ScaleFactor*&) 0.00 7.29 0.00 1 0.00 0.00 void std::swap<AudioFileReader*>(AudioFileReader*&, AudioFileReader*&) 0.00 7.29 0.00 1 0.00 0.00 std::_Rb_tree_node_base*& std::forward<std::_Rb_tree_node_base*&>(std::remove_reference<std::_Rb_tree_node_base*&>::type&) 0.00 7.29 0.00 1 0.00 0.00 void std::_Destroy<boost::shared_ptr<boost::program_options::option_description>*>(boost::shared_ptr<boost::program_options::option_description>*, boost::shared_ptr<boost::program_options::option_description>*) 0.00 7.29 0.00 1 0.00 0.00 void std::_Destroy<boost::shared_ptr<boost::program_options::option_description>*, boost::shared_ptr<boost::program_options::option_description> >(boost::shared_ptr<boost::program_options::option_description>*, boost::shared_ptr<boost::program_options::option_description>*, std::allocator<boost::shared_ptr<boost::program_options::option_description> >&) 0.00 7.29 0.00 1 0.00 0.00 void std::_Destroy<boost::shared_ptr<boost::program_options::options_description>*>(boost::shared_ptr<boost::program_options::options_description>*, boost::shared_ptr<boost::program_options::options_description>*) 0.00 7.29 0.00 1 0.00 0.00 void std::_Destroy<boost::shared_ptr<boost::program_options::options_description>*, boost::shared_ptr<boost::program_options::options_description> >(boost::shared_ptr<boost::program_options::options_description>*, boost::shared_ptr<boost::program_options::options_description>*, std::allocator<boost::shared_ptr<boost::program_options::options_description> >&) 0.00 7.29 0.00 1 0.00 0.00 bool std::operator==<AudioFileReader, std::default_delete<AudioFileReader> >(std::unique_ptr<AudioFileReader, std::default_delete<AudioFileReader> > const&, decltype(nullptr)) 0.00 7.29 0.00 1 0.00 0.00 std::operator|(std::_Ios_Iostate, std::_Ios_Iostate) 0.00 7.29 0.00 1 0.00 0.00 std::operator|(std::_Ios_Openmode, std::_Ios_Openmode)
=== <span style="color: red">&#x2717;Profile 3: String Processor</span> ===
* Sample run:
ext_string_example es + 123 = ext_string123 456 + es = 456ext_string es * 3 = ext_stringext_stringext_string 3 * es = ext_stringext_stringext_string original: abc1234?abc1234?abc1234 es - abc = 1234?1234?1234 es - 123 = abc?abc?abc es - ? = abc1234abc1234abc1234 ext_string == eXt_StRiNg original: eXt_StRiNg lowercase: ext_string uppercase: EXT_STRING original: [ ext_string ] remove leading space: [ext_string ] remove trailing space: [ext_string] es: abc, ijk, pqr, xyz ---> split: (abc) (ijk) (pqr) (xyz) es: abc, ijk, pqr, xyz ---> split_n(3): (abc) (ijk) (pqr) es: 1, -23, 456, -7890 ---> parse: (1) (-23) (456) (-7890) es: 1.1, -23.32, 456.654, -7890.0987 ---> parsed: (1.1000000000000001) (-23.32) (456.654) (-7890.0986999999996) non_repeated_char_example No non-repeated chars in string. First non repeated char: a First non repeated char: b No non-repeated chars in string. First non repeated char: c First non repeated char: 1 translation_table_example Before: Such is this simple string sample....Wowzers! After: S5ch 3s th3s s3mpl2 str3ng s1mpl2....W4wz2rs! Before: Such is this simple string sample....Wowzers! After: S5ch 3s th3s s3mpl2 str3ng s1mpl2....W4wz2rs! Before: Such is this simple string sample....Wowzers! After: S5ch 3s th3s s3mpl2 str3ng s1mpl2....W4wz2rs! Before: Such is this simple string sample....Wowzers! After: S5ch 3s th3s s3mpl2 str3ng s1mpl2....W4wz2rs! Before: Such is this simple string sample....Wowzers! After: S5ch 3s th3s s3mpl2 str3ng s1mpl2....W4wz2rs! find_n_consecutive_example Result-01: [1] Location: [0]] Length: [1] Result-02: [22] Location: [2]] Length: [2] Result-03: [333] Location: [5]] Length: [3] Result-04: [4444] Location: [9]] Length: [4] Result-05: [55555] Location: [14]] Length: [5] Result-06: [666666] Location: [20]] Length: [6] Result-07: [7777777] Location: [27]] Length: [7] Result-08: [88888888] Location: [35]] Length: [8] Result-09: [999999999] Location: [44]] Length: [9] Result-01: [a] Location: [0]] Length: [1] Result-02: [bB] Location: [2]] Length: [2] Result-03: [cCc] Location: [5]] Length: [3] Result-04: [dDdD] Location: [9]] Length: [4] Result-05: [EeEeE] Location: [14]] Length: [5] Result-06: [fFfFfF] Location: [20]] Length: [6] Result-07: [gGgGgGg] Location: [27]] Length: [7] Result-08: [HhHhHhHh] Location: [35]] Length: [8] Result-09: [IiIiIiIiI] Location: [44]] Length: [9] split_on_consecutive_example 1 Consecutive digits: 1 2 2 3 3 3 4 4 4 4 5 5 5 5 5 6 6 6 6 6 6 7 7 7 7 7 7 7 8 9 9 0 0 0 1 1 1 1 2 2 2 2 2 3 3 3 3 3 3 4 4 4 4 4 4 4 2 Consecutive digits: 22 33 44 44 55 55 66 66 66 77 77 77 99 00 11 11 22 22 33 33 33 44 44 44 3 Consecutive digits: 333 444 555 666 666 777 777 000 111 222 333 333 444 444 4 Consecutive digits: 4444 5555 6666 7777 1111 2222 3333 4444 5 Consecutive digits: 55555 66666 77777 22222 33333 44444 6 Consecutive digits: 666666 777777 333333 444444 1 Consecutive letters: A B B C C C D D D D E E E E E F F F F F F G G G G G G G H I I J J J K K K K L L L L L M M M M M M N N N N N N N 2 Consecutive letters: BB CC DD DD EE EE FF FF FF GG GG GG II JJ KK KK LL LL MM MM MM NN NN NN 3 Consecutive letters: CCC DDD EEE FFF FFF GGG GGG JJJ KKK LLL MMM MMM NNN NNN 4 Consecutive letters: DDDD EEEE FFFF GGGG KKKK LLLL MMMM NNNN 5 Consecutive letters: EEEEE FFFFF GGGGG LLLLL MMMMM NNNNN 6 Consecutive letters: FFFFFF GGGGGG MMMMMM NNNNNN index_of_example Index of pattern[0123456789ABC]: 0 Index of pattern[123456789ABC]: 1 Index of pattern[23456789ABC]: 2 Index of pattern[3456789ABC]: 3 Index of pattern[456789ABC]: 4 Index of pattern[56789ABC]: 5 Index of pattern[6789ABC]: 6 Index of pattern[789ABC]: 7 Index of pattern[89ABC]: 8 Index of pattern[9ABC]: 9 Index of pattern[xyz]: 4294967295 truncatedint_example i = -1234 i = -1234 u = 1234 i = -1234 u = 1234
real 0m0.248s user 0m0.080s sys 0m0.024s
* Profile:
|
Flat profile:
Flat profile: Each sample counts as 0.01 seconds.
% cumulative self self total
time seconds seconds calls ms/call ms/call name
0.00 0.06 0.00 979 0.00 0.00 strtk::text::is_digit(char)
0.00 0.06 0.00 978 0.00 0.00 strtk::text::is_letter(char)
 == Assignment 2 == ==== Description ==== ''' Removing CPU Bottleneck ''' Removing the old CPU bottleneck in the <code>byteCipher</code> function: for (int i = 0; i < bufferSize; i++){ // going over every byte in the file switch (mode) { case 0: // inversion buffer[i] = ~buffer[i]; break; case 1: // cycle buffer [i] = cycle (buffer [i]); break; case 2: // RC4 buffer [i] = buffer [i] ^ rc4_output(); break; } } And replacing it with ... if (mode == 1) getCycleBuffer << < dGrid, dBlock >> >(d_a, bufferSize, d_output); if (mode == 2) getRC4Buffer << < dGrid, dBlock >> >(d_a, bufferSize, d_output); ...  ''' Device Functions ''' Converting <code>cycle</code> and <code>rc4_output</code> functions to device functions: /** * Description: Device function cycle **/ __device__ char cycle(char value) { int leftMask = 170; int rightMask = 85; int iLeft = value & leftMask; int iRight = value & rightMask; iLeft = iLeft >> 1; iRight = iRight << 1; return iLeft |iRight; }  /** * Description: Device function RC4 **/ __device__ unsigned char rc4_output() { unsigned char temp; unsigned char S[0x100]; // dec 256 unsigned int i, j; i = (i + 1) & 0xFF; j =(j + S[i]) & 0xFF; temp = S[i]; S[i] =S[j]; S[j] = Assignment temp; return S[(S[i] + S[j]) & 0xFF]; }  '''Creating Kernels''' We created kernels for each of the 2 different methods of Cipher that the program handles (RC4 and Cycle, but not the others -- read on): /** * Description: RC4 Cuda Kernel **/ __global__ void getRC4Buffer(char * buffer, int bufferSize) { int idx = blockIdx.x * blockDim.x + threadIdx.x; if (idx < bufferSize) buffer[idx] = buffer[idx] ^ rc4_output(); }  /** * Description: Cycle Cuda Kernel **/ __global__ void getCycleBuffer(char * buffer, int bufferSize) { int idx = blockIdx.x * blockDim.x + threadIdx.x; if (idx < bufferSize) buffer[idx] = cycle(buffer[idx]); }  You may be asking what about the two other methods of cipher: '''byte inversion''' and '''xor cipher'''? Well, as it turns out these methods run perfectly fine on the CPU and usually are faster on the CPU than the GPU. We initially had converted these functions over to CUDA, but we soon discovered that these functions did not need to be converted as they ran faster on the CPU than they did on the GPU.  Here's an example of run time of Xor Cipher on both CPU and GPU with the 789MB file: GPU: http://i.imgur.com/0PsLxzQ.png -- 6.263 seconds  CPU: http://i.imgur.com/ktn14q3.png -- 3.722 seconds  As we can see, the CPU runs way faster than the GPU: no parallelization needed here! ==== Profiling ==== The following test runs were performed on the following Machine:* Windows 10* i7-4790k @ 4.0GHz* 16GB DDR3* Nvidia GTX 430  ===== RC4 Profiling ===== '''RC4 Cipher - 283 MB mp3 File''' Total runtime: 1.358 seconds [[File:music.png]]  '''RC4 Cipher - 636 MB iso File''' Total runtime: 3.87 seconds [[File:cent.png]]  '''RC4 Cipher - 789 MB iso File''' Total runtime: 5.072 seconds [[File:xu.png]]  ''' RC4 Run time comparisons: CPU vs. CUDA ''' Comparing Windows vs. Windows for most accurate results. [[File:cpuvscuda.png]]  ===== Byte Cycle Profiling ===== '''Byte Cycle - 283 MB mp3 File''' Total runtime: 3.467 seconds [[File:music2.png]]  '''Byte Cycle - 636 MB iso File''' Total runtime: 8.088 seconds [[File:cent2.png]]  '''Byte Cycle - 789 MB iso File''' Total runtime: 9.472 seconds [[File:xu2.png]]  ''' Byte Cycle time comparisons: CPU vs. CUDA ''' Comparing Windows vs. Windows for most accurate results. [[File:cpuvscuda2.png]] ==== Conclusion ==== ''' RC4 Findings''' We are seeing about <span style="color: green; font-size:14px">540% (~5.4x)</span> performance increase while using CUDA instead of the CPU in all 3 of the test cases.  ''' Byte Cycle Findings''' We are seeing about <span style="color: green; font-size:14px">320% (~3.2x)</span> performance increase while using CUDA instead of the CPU in all 3 of the test cases.  Overall, we think that these are amazing results and a significant improvement in performance over the CPU version of the code. Both of these functions have greatly improved in run time and efficiency == Assignment 3 == Due to the nature of the way this program was structured by the original developer, optimization was not really needed. The benefits were very small, but here are the optimized kernels for safe measure: '''RC4 OPTIMIZED Cuda Kernel'''<pre> /** * Description: RC4 Cuda Kernel **/__global__ void getRC4Buffer(char * buffer, int bufferSize, int ntpb) { int idx = blockIdx.x * blockDim.x + threadIdx.x; int tid = threadIdx.x;  __shared__ float sharedMem[_NTPB];  sharedMem[tid] = buffer[idx]; __syncthreads();  if (idx < bufferSize) sharedMem[tid] = cycle(sharedMem[tid]); __syncthreads();  buffer[idx] = sharedMem[tid];}</pre> '''Cycle OPTIMIZED Cuda Kernel'''<pre>/*** Description: Cycle Cuda Kernel**/__global__ void getCycleBuffer(char * buffer, int bufferSize) { int idx = blockIdx.x * blockDim.x + threadIdx.x; int tid =threadIdx.x;  __shared__ float sharedMem[_NTPB];  sharedMem[tid] = buffer[idx]; __syncthreads();  if (idx < bufferSize) sharedMem[tid] = cycle(sharedMem[tid]); __syncthreads();  buffer[idx] = sharedMem[tid];}</pre> The device functions were not modified. [[File:a3graph.png]]