Useful thread-safe collections with performance in mind.
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'.
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>
Various concepts inspired by Go.
Initially designed for Mineteria.
flare's People
Forkers
cyberflamegoflare'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?
LinkedHashSet?
Is there a way to have LinkedHashSet with flare?
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.
- chore(deps): Update dependency it.unimi.dsi:fastutil to v8.5.16
- chore(deps): Update dependency io.pebbletemplates:pebble to v3.2.4
- chore(deps): Update dependency net.kyori:mammoth to v1.5.0
- chore(deps): Update dependency org.checkerframework:checker-qual to v3.49.5
- chore(deps): Update dependency org.junit:junit-bom to v5.13.3
- chore(deps): Update dependency org.openjdk.jmh:jmh-core to v1.37
- chore(deps): Update dependency org.openjdk.jmh:jmh-generator-annprocess to v1.37
- chore(deps): Update dependency org.snakeyaml:snakeyaml-engine to v2.10
- chore(deps): Update gradle and github actions (
gradle
,net.kyori:indra-common
,me.champeau.jmh
) - Click on this checkbox to rebase all open PRs at once
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
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.