Hashshmash

An aspectj project for evaluating Hash Collection/hashCode() dispersement quality
Alternatives To Hashshmash
Project NameStarsDownloadsRepos Using ThisPackages Using ThisMost Recent CommitTotal ReleasesLatest ReleaseOpen IssuesLicenseLanguage
Gradle_plugin_android_aspectjx3,499
2 years ago145apache-2.0Groovy
A Android gradle plugin that effects AspectJ on Android project and can hook methods in Kotlin, aar and jar file.
Android Gradle Aspectj342
a year ago36apache-2.0Kotlin
gradle plug-in adding supports of AspectJ into Android project
Aspectjaop22
6 years agoJava
Jotserver14
8 years agoJava
Java Open Tibia server implementation made using SQL database for storage, AspectJ, JUnit, Apache MINA, StripesFramework, and Maven.
Classconflictcheck9
8 years agoJava
检测类路径下是否存在jar包中的class冲突,通常用于web应用的lib目录下class冲突检查
Hashshmash7
4 years ago1May 15, 2013apache-2.0Java
An aspectj project for evaluating Hash Collection/hashCode() dispersement quality
So_aj_mavenweavejdk5
6 years agoJava
Multi-module Maven project showing how to weave aspects into JDK/JRE classes
Android Gradle Aspectj4
4 years agoapache-2.0Kotlin
gradle plug-in adding supports of AspectJ into Android project
Swf Flow Gradle3
6 years agoapache-2.0Java
Example of how to use AWS SWF Flow Framework with Gradle and IntelliJ
Alternatives To Hashshmash
Select To Compare


Alternative Project Comparisons
Readme

An aspectj library for evaluating the various metrics about hashed collections at runtime, such as:

  • Allocations of zero sized collections
  • Overly sized collections for their contents
  • poorly dispersed items due to poor hashCodes
  • excessive allocations of collections

To use, apply the aspect to your code with an ant task such as this:

    <target name="aspects" xmlns:aspectj="antlib:org.aspectj">  
        <aspectj:iajc outJar="${build.dir}/${your_jar_name}_aj.jar" showWeaveInfo="true">  
            <aspectpath>  
                <pathelement location="${lib.dir}/hashshmash-0.2.0.jar"/>
            </aspectpath>  
            <inpath>  
                <pathelement location="${build.dir}/${your_jar_name}.jar"/>  
            </inpath>  
            <classpath>  
                <pathelement location="${lib.dir}/aspectjrt.jar"/>  
                <path refid="your.classpath"/>  
            </classpath>  
       </aspectj:iajc>  
    </target>

When compiling the aspectjtools.jar should be in ant/lib

Then delete your original jar ${build.dir}/${your_jar_name}.jar and just use ${build.dir}/${your_jar_name}_aj.jar You will need to include aspectj.jar and hashshmash.jar in your classpath when running your application.

The aspect will generate a file in ${user.home}/.hashshmash with allocation information in the form

Type \t AllocationTime \t AllocationSite \t CollectionSize \t NumberOfBuckets \t UsedBuckets

You will need aspectjtools.jar to apply the aspect to your code, as well as aspectjrt.jar to run it.

Once you have collected a statistics file by running with aspects, you can generate an html report by running

java -classpath hashsmhash.jar:aspectjrt.jar:xml-apis.jar:xalan.jar:serializer.jar com.mebigfatguy.hashshmash.Report

or if using ant, there is an ant task

    <target name="report" xmlns:report="com.mebigfatguy.hashsmash.report">
        <report:report/>
    </target>

HashShmash is available on maven.org

groupId:    com.mebigfatguy.hashshmash
artifactid: hashshmash
version:    0.2.0
Popular Aspectj Projects
Popular Jar Projects
Popular Software Architecture Categories

Get A Weekly Email With Trending Projects For These Categories
No Spam. Unsubscribe easily at any time.
Java
Jar
Ant
Aspectj