Skip to content

Utility

Brian Tsau edited this page Jun 11, 2019 · 1 revision

Utility (package edu.columbia.cs.psl.ioclones.utils)

BytecodeUtils

Utility class to check information on JVM bytecode instructions through their opcode numbers.

ClassDataTraverser

Utilized by PreAnalyzer, cleans all classes in a directory by going through bytecode for method and removing all JSR instructions through ASM's JSRInlinerAdapter.

ClassInfoUtils

Utility class containing methods regarding parsing the metadata of classes. Also contains methods to collect metadata for methods, such as parameters and method key (fully qualified class name and method signature).

ClusterAnalyzer

Script to run k-nearest-neighbors after all three steps of HitoshiIO have been run. Intended as an extension by Mike, but not invoked in current standard version of HitoshiIO. Seems to be the same as SqliteClusterAnalyzer but expects a mysql database instead of a sqlite database.

DeepHash

Class to generate deephash code of a given java object.

GlobalInfoRecorder

Class that serves as an observer for steps of HitoshiIO run through PreAnalyzer, DependentValueInterpreter, and IODriver, collecting relevant data as steps are run, such as number of I/Os captured and methods analyzed, and also outputs zipped XML objects containing captured I/Os.

IOUtils

Class that serves as a toolkit to interact with files and databases utilized by HitoshiIO.

QueryInterface

Script that prints out method signature and written parameters of all stored within methodeps.db that are subclasses of java.io.Writer.

ShutdownLogger

Class that serves as a logger for the IODriver step. Holds a buffer that does not automatically flush to file, but does so either when the max buffer length is reached or IODriver has terminated.

SqliteClusterAnalyzer

Script to run k-nearest-neighbors after all three steps of HitoshiIO have been run. Intended as an extension by Mike, but not invoked in current standard version of HitoshiIO. Seems to be the same as ClusterAnalyzer but expects a sqlite database instead of a mysql database.

XMLDiffer

Class that contains utility methods to compare xmls, used after I/Os are captured and written in IODriver. Alternative to deephash for XML comparison used in SimAnalysisDriver.

Documentation belonging to the development of HitoshiIO can be found here. However, some files are still poorly documented, and some are not used at all in the current version of the system and exist for further development/research.

Below is the organization of HitoshiIO's source code:

  1. Root
  2. Analysis
  3. Config
  4. Driver
  5. Instrument
  6. Pojo
  7. Premain
  8. Similarity
  9. Utilities
  10. Xml Converter
Clone this wiki locally