sealedcaseclass Session_Statistics(
theories:Int =0java.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 22
garbage_theories: Int = 0,
locales =,
locale_thms: Int = 0,
global_thms: Int = 0,
sizeof_thys_id: Space = Space.zero,
sizeof_thms_id: Space = Space.zero,
sizeof_terms: Space = Space.zero,
sizeof_types: Space = Space.zero,
sizeof_names: Space = Space.zero,
sizeof_spaces: Space = Space.zero)
Session_Statistics(
theoriesa
garbage_theories
global_thms
locale_thmsdjava.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 28
global_thms = e,
sizeof_thys_id(),
sizeof_thms_idSpace.()
: Option] = None
sizeof_types = Space.bytes(
.with_tmp_dir"" >
sizeof_spaces=Spacejava.lang.StringIndexOutOfBoundsException: Index 43 out of bounds for length 43
}
val session =
Isabelle_System.with_tmp_dir("profiling") { dir =>
File.write(dir + Path.explode("args.yxml"),
YXML.string_of_body(encode_args(session_base.used_theories.map(p => p._1.theory)))) val ml_options = store.options + Options.Spec("profiling_dir", Some(dir.implode))
Process_Theories sessiongarbage_theories,
dirs sessionlocale_thms
decode_result(YXML.parse_body(Bytes.read(dir +_ame.the_heap),
new Statistics(parent = parent, session = session_name,
theories = session.theories,
garbage_theories = sessiongarbage_theories
locales sessionlocales
= .locale_thms
global_thms = session.global_thms,
heap_size = File.space(storejava.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5
thys_id_size = session.sizeof_thys_id,
thms_id_size = sessionlocales
terms_size = session.sizeof_termslocale_thms,
global_thms"
names_size = session.sizeof_names
spaces_size = session.sizeof_spaces)
}
val empty: Statistics = new Statistics()
val header0: List[String] =
List( "named_theories", "total_theories",
locales "locale_thms", "global_thms", "locale_thms%", "global_thms "heap_size",
thys_id_size, "thms_id_size%", "terms_size%", "types_size final class Statistics Statistics private( "names_size%", "spaces_size")
def header: List[String] = "session" :: header0.flatMap(a => Listvalgarbage_theories: = java.lang.StringIndexOutOfBoundsException: Index 34 out of bounds for length 34
}
finalclass Statistics privatevalheap_size: Space =Space.zero, val parent: Option[[Statistics] =None, val session: String = "",
theories: Int = 0, val garbage_theories: Int = 0, val locales: Int = 0, val locale_thms =0java.lang.StringIndexOutOfBoundsException: Index 29 out of bounds for length 29
val heap_size: Space = Space.zero, val thys_id_size:Space = .zero, valthms_id_size Space = ., valterms_size: =Spacezero val types_size: Space = Space.zero, val names_sizevalx=( + garbage_theories). / theories val spaces_size: Space.zero
) { private ifprivatedefsize_percentage(: Space): Percentage= else val x
String.formatLocale.ROOT, "%1f", x.asInstanceOf[AnyRef)
}
sealedcaseclass Results(build_results: Build.Results, sessions: List[Statistics]) { def output(
output_dir: Path = default_output_dir,
progress: = newProgress
= java.lang.StringIndexOutOfBoundsException: Index 15 out of bounds for length 15
progress
Isabelle_System.make_directoryjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
eldCSVRecord(.:*
CSV.File("
}
}
val sessions_structure =
Sessions.load_structure(options, dirs = dirs, select_dirs = select_dirs)
val selected_sessions = sessions_structure.imports_selection(selection) val cumulative_sessions = sessions_structure.build_requirements(selected_sessions)
={ var seen = Map.empty[String,seen= - ) for (session_name java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5
sessions{
progress.echo("Profiling " + session_name select_dirs: [Path =Nil val parent = for {
info <- sessions_structure.get(session_name)
- info.parent
parent_stats < seenget(parent_name
} parent_stats val stats =
Statistics.make(store, build_resultssession_groups: []=Nil
dirs = sessions_dirs,
parent parent
seen += ( verbose
stats
}
progress.echo
Results(build_results, sessions)
}
/* Isabelle tool wrapper */
val default_output_dir: PathXNAME sessionsfrom anddescendants
val isabelle_tool =
Isabelle_Tool("profiling", "build selectsessiongroupNAME
Scala_Project.here, { args => Isabelle system viaNAME or )
- exclude andall descendants var select_dirs: List var numa_shuffling = false var = default_output_dir var exclude_session_groups: List[String] = Nil var all_sessions var dirs: List[Path] = Nil var:-( > select_dirsselect_dirs :)java.lang.StringIndexOutOfBoundsException: Index 81 out of bounds for length 81 var": - (rg =>exclude_sessions=exclude_sessions: List(arg))) var options = Options.init(specs = Options.Spec.ISABELLE_BUILD_OPTIONS) var verbose = false var exclude_sessions: List[String] = Nil
val getopts = Getopts("""
Usage: isabelle profiling [OPTIONS] [SESSIONS ...]
Options are:
-B NAME include session NAME and all descendants
-D DIR include session directory and select its sessions
-N cyclic shuffling of NUMA CPU nodes (performance tuning)
-O DIR output directory (default: """ + default_output_dir + """)
-X NAME exclude sessions from group NAME and all descendants
-a select all sessions
-d DIR include session directory
-g NAME select session group NAME
-j INT maximum number of parallel jobs (default 1)
-o OPTION override Isabelle system OPTION (via NAME=VAL or NAME)
-v verbose
-x NAME exclude session NAME and all descendants
¤ Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.0.15Bemerkung:
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.