robekl 39f6d6c831 Performance improvements (#746)
* Misc minor performance improvements

* Use more concise loop syntax

* Use more concise Collection sort syntax

* Use StringUtils pad methods

* Optimize some loops and double-map-lookups

* Optimize array instantiation

There are two styles to convert a collection to an array: either
using a pre-sized array (like c.toArray(new String[c.size()])) or
using an empty array (like c.toArray(new String[0]).

In older Java versions using pre-sized array was recommended,
as the reflection call which is necessary to create an array
of proper size was quite slow. However since late updates of
OpenJDK 6 this call was intrinsified, making the performance
of the empty array version the same and sometimes even better,
compared to the pre-sized version. Also passing pre-sized array
is dangerous for a concurrent or synchronized collection as
a data race is possible between the size and toArray call
which may result in extra nulls at the end of the array,
if the collection was concurrently shrunk during the operation.

* Cleanup string concatenation

* Use EnumMap where possible

* Use FastMath instead of Math

* Initialize complex things only once

* Reduce method size to aloow more JIT inlining

* remove map of short->float

* Move field to local variable

* Cleanup Map lookup

Co-authored-by: Rob Ekl <xwq876@zebra.com>
2020-04-25 07:57:56 -04:00
2020-04-25 07:57:56 -04:00
2019-12-21 08:38:41 -05:00
2017-12-15 22:45:40 +02:00

sdrtrunk

A cross-platform java application for decoding, monitoring, recording and streaming trunked mobile and related radio protocols using Software Defined Radios (SDR).

sdrtrunk Application Overview - Version 0.3.0 Figure 1: sdrtrunk Version 0.3.0 Application Screenshot

End User Instructions:

If you simply want to download and run the program, please follow these instructions.

Download the latest sdrtrunk release for your operating system

All release versions of sdrtrunk are available from the releases tab.

  • (alpha) These versions are under development feature previews and likely to contain bugs and unexpected behavior.
  • (beta) These versions are currently being tested for bugs and functionality prior to final release.
  • (final) These versions have been tested and are the current release version.

Unzip the release

Use 7-zip or any zip utility to unzip the release file

Start the application

Once unzipped, open a command prompt to where you unzipped the release. Change to the /bin directory and use the launch script to start the application:

  • Windows sdr-trunk.bat
  • Linux/OSX ./sdr-trunk

Optional - P25 Audio

If you're using sdrtrunk with a P25 trunked radio system, the JMBE wiki page contains instructions for downloading the JMBE audio library source code and compiling the JMBE library. Once you have compiled the library, launch the sdrtrunk application. From the menu bar, choose View >> Preferences. In the JMBE Audio Codec section, update the path to where your compiled JMBE library is located. Any channels that are started after you set the path will be able to produce P25 audio.

Minimum System Requirements

  • Operating System: Windows (32 or 64-bit), Linux (32 or 64-bit) or Mac/Linux (64-bit, 10.14 or higher)
  • CPU: 4-core
  • RAM: 8GB or more (preferred). Depending on usage, 4GB may be sufficient.

Developer Instructions:

If you're interested in modifying and/or compiling the source code, please follow these instructions to use gradle to compile the code.

Build the project

sdrtrunk uses the gradle build system. This requires OpenJDK 11 or higher installed on your local compuber. Use the gradle wrapper to build the source code:

Linux

./gradlew clean build

Windows

gradlew.bat clean build

The /build/distributions folder will contain the zip file of the compiled program. Unzip it and launch the program from the scripts in the /bin directory.

Development

All dependencies/versions are controlled from build.gradle. To change the new release version tag of artifact - change property:

version = '0.4.0'
Description
No description provided
Readme GPL-3.0 53 MiB
NXDN-625 Latest
2026-06-25 09:56:10 -04:00
Languages
Java 99.9%