713{
714 std::cout << "Frame memory usage" << std::endl;
715
716 std::cout << " level"
717 << " #elems"
718 << " used"
719 << " allocated"
720 << " nterms"
721 << " poly"
722 << " polalloc" << std::endl;
723 long alloc = 0;
724 long used = 0;
725 long nelems = 0;
726 long poly_used = 0;
727 long poly_alloc = 0;
728 long poly_nterms = 0;
729 long poly_used_level = 0;
730 long poly_alloc_level = 0;
731 long poly_nterms_level = 0;
732 for (
int i = 0; i <
mFrame.mLevels.size(); i++)
733 {
734 long nelems_level =
level(i).size();
735 if (nelems_level == 0) continue;
738 poly_nterms_level = 0;
739 poly_used_level = 0;
740 poly_alloc_level = 0;
741 for (int j = 0; j < nelems_level; j++)
742 {
744 poly_nterms_level,
745 poly_used_level,
746 poly_alloc_level);
747 }
748 poly_nterms += poly_nterms_level;
749 poly_used += poly_used_level;
750 poly_alloc += poly_alloc_level;
751 std::cout << std::setw(6) << i << " " << std::setw(8) << nelems_level
752 << " " << std::setw(6) << used_level << " " << std::setw(11)
753 << alloc_level << " " << std::setw(10) << poly_nterms_level
754 << " " << std::setw(10) << poly_used_level << " "
755 << std::setw(10) << poly_alloc_level << std::endl;
756 nelems += nelems_level;
757 used += used_level;
758 alloc += alloc_level;
759 }
760 std::cout << " all"
761 << " " << std::setw(8) << nelems << " " << std::setw(6) << used
762 << " " << std::setw(11) << alloc << " " << std::setw(10)
763 << poly_nterms << " " << std::setw(10) << poly_used << " "
764 << std::setw(10) << poly_alloc << std::endl;
765
767 long monomUsed =
769 std::cout << "monomials " << std::setw(6) << monomUsed << " "
770 << std::setw(11) << monomSpace << std::endl;
771 std::cout << "total mem " << std::setw(6)
772 << (used + monomUsed + poly_used) << " " << std::setw(11)
773 << (alloc + monomSpace + poly_alloc) << std::endl;
774}
int max_monomial_size() const
void memUsage(const ResPolynomial &f, long &nterms, long &bytes_used, long &bytes_alloc) const
SchreyerFrameTypes::FrameElement FrameElement
const ResMonoid & monoid() const
std::vector< FrameElement > & level(int lev)
const ResPolyRing & ring() const
ResMemoryBlock< res_monomial_word > mMonomialSpace