Coder Social home page Coder Social logo

flare's Introduction

Flare Discord

GitHub Workflow Status (branch) MIT License Maven Central Sonatype Nexus (Snapshots)

Useful thread-safe collections with performance in mind.

Building

Note: If you do not have Gradle installed then use ./gradlew for Unix systems or Git Bash and gradlew.bat for Windows systems in place of any 'gradle' command.

In order to build Flare you simply need to run the gradle build command. You can find the compiled JAR file in ./flare/build/libs or ./flare-fastutil/build/libs labeled 'flare-2.0.1.jar' or 'flare-fastutil-2.0.1.jar'.

Benchmarks

SyncMap Benchmarks

Dependency

Gradle:

repositories {
  mavenCentral()
}

dependencies {
  implementation "space.vectrix.flare:flare:2.0.1"
  implementation "space.vectrix.flare-fastutil:2.0.1"
}

Maven:

<dependencies>
  <dependency>
    <groupId>space.vectrix.flare</groupId>
    <artifactId>flare</artifactId>
    <version>2.0.1</version>
  </dependency>
  <dependency>
    <groupId>space.vectrix.flare</groupId>
    <artifactId>flare-fastutil</artifactId>
    <version>2.0.1</version>
  </dependency>
</dependencies>

Credits

Various concepts inspired by Go.

Initially designed for Mineteria.

flare's People

Contributors

vectrixdevelops avatar dependabot[bot] avatar renovate-bot avatar renovate[bot] avatar

Stargazers

 avatar  avatar  avatar  avatar Dy/ma Correa avatar Outspending avatar Celeste Peláez avatar Sammwy avatar Yuri avatar Subham K. avatar Steank avatar Alic avatar LeeGod avatar C_Corp2002 avatar Collin avatar  avatar vytskalt avatar  avatar Rice avatar kBULOSU avatar MrMicky avatar Sergi Vos ☁ avatar CyberFlame avatar Heath L Campbell avatar Andrew Steinborn avatar

Watchers

 avatar

Forkers

cyberflamego

flare's Issues

Benchmarks

For this to appear useful in any way, this really requires some benchmarks to use for comparisons.

SyncMap Custom Implementation

The sync map provides a flexible way to wrap any map implementation and make it thread safe. However, it does suffer from some performance loss due to it's flexible design which may be undesirable in situations where lock contention can range from nothing to low contention (and possibly more). While achieving speeds relative to a ConcurrentHashMap#get and others under low contention may vary, it could be possible to close the gap more, by added a new custom backing implementation to SyncMap and store the data in buckets, similar to a ConcurrentHashMap, with instead of one lock for the whole map, a lock for each bucket. This could also be repeated for custom fastutil implementations too (although it may be trickier). If done correctly, it could result in speeds close to ConcurrentHashMap and higher.

More effort would need to be put in to evaluate the direction here, but it could be a good avenue to go.

Performance

Was there any tests done? From what I see SyncMap has worse performance than ConcurrentHashMap, are there any benchmarks? When using flare will be better than normal hashmap/fastutil?

Can't get jar

Building with gradle doesn't bring flare's jar, only build-tools and build-logic

Dependency Dashboard

This issue lists Renovate updates and detected dependencies. Read the Dependency Dashboard docs to learn more.
View this repository on the Mend.io Web Portal.

Rate-Limited

These updates are currently rate-limited. Click on a checkbox below to force their creation now.

  • chore(deps): Update dependency com.google.guava:guava-testlib to v33
  • chore(deps): Update gradle and github actions (major) (actions/checkout, actions/setup-java, actions/upload-artifact, gradle, gradle/gradle-build-action, gradle/wrapper-validation-action, net.kyori:indra-common)
  • 🔐 Create all rate-limited PRs at once 🔐

Edited/Blocked

These updates have been manually edited so Renovate will no longer make changes. To discard all commits and start over, click on a checkbox.

Open

These updates have all been created already. Click a checkbox below to force a retry/rebase of any.

Detected dependencies

github-actions
.github/workflows/build.yml
  • actions/checkout v3
  • actions/setup-java v3
  • gradle/gradle-build-action v2
  • actions/upload-artifact v3
.github/workflows/validate.yml
  • actions/checkout v3
  • gradle/wrapper-validation-action v1
gradle
gradle.properties
settings.gradle.kts
build.gradle.kts
benchmark/build.gradle.kts
  • me.champeau.jmh 0.6.6
  • org.openjdk.jmh:jmh-core 1.34
  • org.openjdk.jmh:jmh-generator-annprocess 1.34
build-logic/build.gradle.kts
  • net.kyori:indra-common 2.1.1
  • de.marcphilipp.gradle:nexus-publish-plugin 0.4.0
build-logic/src/main/kotlin/flare.base-conventions.gradle.kts
build-logic/src/main/kotlin/flare.common-conventions.gradle.kts
  • org.checkerframework:checker-qual 3.18.0
  • net.jodah:concurrentunit 0.4.6
  • com.google.guava:guava-testlib 31.0.1-jre
  • org.junit:junit-bom 5.8.2
build-logic/src/main/kotlin/flare.parent-build-logic.gradle.kts
build-logic/src/main/kotlin/flare.shared-conventions.gradle.kts
build-tool/settings.gradle.kts
build-tool/build.gradle.kts
  • org.cadixdev.licenser 0.6.1
  • io.pebbletemplates:pebble 3.1.5
  • org.snakeyaml:snakeyaml-engine 2.3
  • net.kyori:mammoth 1.0.0
flare/build.gradle.kts
flare-fastutil/build.gradle.kts
  • it.unimi.dsi:fastutil 8.5.8
gradle-wrapper
gradle/wrapper/gradle-wrapper.properties
  • gradle 7.4.2
renovate-config-presets
renovate.json

  • Check this box to trigger a request for Renovate to run again on this repository

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.