Looking for a Code Review of a Bioinformatics POC

tastyminerals tastyminerals at gmail.com
Thu Jun 11 20:24:37 UTC 2020


On Thursday, 11 June 2020 at 16:13:34 UTC, duck_tape wrote:
> Hi! I'm new to dlang but loving it so far! One of my favorite 
> first things to implement in a new language is an interval 
> library. In this case I want to submit to a benchmark repo: 
> https://github.com/lh3/biofast
>
> If anyone is willing to take a look and give some feedback I'd 
> be very appreciative! Specifically if you have an performance 
> improvement ideas: https://github.com/sstadick/dgranges/pull/1
>
> Currently my D version is a few seconds slower than the Crystal 
> version. putting it very solid in third place overall. I'm not 
> really sure where it's falling behind crystal since `-release` 
> removes bounds checking. I have not looked at the assembly 
> between the two, but I suspect that Crystal inlines the 
> callback and D does not.
>
> I also think there is room for improvement in the IO, as I'm 
> just using the defaults.

Add to your dub.json the following:

"""
	"buildTypes": {
		"release": {
			"buildOptions": [
				"releaseMode",
				"inline",
				"optimize"
			],
			"dflags": [
				"-boundscheck=off"
			]
		},
         }
"""

dub build --compiler=ldc2 --build=release

Mir Slices instead of standard D arrays are faster. Athough 
looking at your code I don't see where you can plug them in. Just 
keep in mind.


More information about the Digitalmars-d-learn mailing list