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.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.