Skip to content

Instantly share code, notes, and snippets.

View gfoidl's full-sized avatar

Günther Foidl gfoidl

View GitHub Profile
@gfoidl
gfoidl / Debug_tipps_for_NET_with_LLDB.md
Last active October 5, 2023 18:07
Debug tipps for .NET with LLDB

Debug

Visual Studio debugging

  • local as usual
  • remote over SSH for Linux possible
  • mixed mode (managed + native) possible, therefore in the managed project in the debug properties the flag must be set, so a launchprofile.json will be created
    {
      "profiles": {
@gfoidl
gfoidl / Postgres_replication.cs
Last active December 8, 2023 17:29
PostgreSQL replication via WAL
using System.Text.Json;
using Microsoft.EntityFrameworkCore;
using Npgsql.Replication;
using Npgsql.Replication.PgOutput;
using Npgsql.Replication.PgOutput.Messages;
const string ConnString = "host=10.0.0.20;username=root;password=root;database=test_db";
using CancellationTokenSource cts = new();
await using BloggingContext db = new(ConnString);
using System.Globalization;
using SixLabors.ImageSharp.PixelFormats;
internal class TurboColorMap
{
// https://gist.github.com/mikhailov-work/6a308c20e494d9e0ccc29036b28faa7a
private const string RawData = "{0.18995,0.07176,0.23217},{0.19483,0.08339,0.26149},{0.19956,0.09498,0.29024},{0.20415,0.10652,0.31844},{0.20860,0.11802,0.34607},{0.21291,0.12947,0.37314},{0.21708,0.14087,0.39964},{0.22111,0.15223,0.42558},{0.22500,0.16354,0.45096},{0.22875,0.17481,0.47578},{0.23236,0.18603,0.50004},{0.23582,0.19720,0.52373},{0.23915,0.20833,0.54686},{0.24234,0.21941,0.56942},{0.24539,0.23044,0.59142},{0.24830,0.24143,0.61286},{0.25107,0.25237,0.63374},{0.25369,0.26327,0.65406},{0.25618,0.27412,0.67381},{0.25853,0.28492,0.69300},{0.26074,0.29568,0.71162},{0.26280,0.30639,0.72968},{0.26473,0.31706,0.74718},{0.26652,0.32768,0.76412},{0.26816,0.33825,0.78050},{0.26967,0.34878,0.79631},{0.27103,0.35926,0.81156},{0.27226,0.36970,0.82624},{0.27334,0.38008,0.84037},{0.27429,0.39043,0.85393},{0.27509,0.40072,0.86692},{0
@gfoidl
gfoidl / AVX random Vector256_int.cs
Last active October 17, 2022 11:02
AVX2 random
using System.Runtime.InteropServices;
using System.Runtime.Intrinsics;
using System.Runtime.Intrinsics.X86;
Vector256<float> one = Vector256.Create(1f);
Vector256<float> upper = Vector256.Create((float)(64 + 1));
Dictionary<int, long> histogram = new();
// Random numbers ;-)
@gfoidl
gfoidl / Vector_Reduce_Min_Max.cs
Last active August 23, 2023 19:08
ReduceMin/Max for Vector128<T> where T : IBinaryInteger
using System.Numerics;
using System.Runtime.CompilerServices;
using System.Runtime.Intrinsics;
using System.Runtime.Intrinsics.X86;
internal static class VectorExtensions
{
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static T ReduceMin<T>(this Vector128<T> vector) where T : struct, IBinaryInteger<T>
{
@gfoidl
gfoidl / ModuleInitializer_static_readonly.cs
Created December 4, 2020 10:59
Codegen for ModuleInitializer and static readonly fields
using System;
using System.Runtime.CompilerServices;
using BenchmarkDotNet.Attributes;
using BenchmarkDotNet.Running;
BenchmarkRunner.Run<Bench>();
[ShortRunJob]
[DisassemblyDiagnoser]
public class Bench
@gfoidl
gfoidl / IValueTaskSource and ManualResetValueTaskSourceCore for CPU-work.cs
Last active August 20, 2023 16:00
IValueTaskSource and ManualResetValueTaskSourceCore for CPU-work (just as PoC)
using System;
using System.Diagnostics;
using System.Runtime.CompilerServices;
using System.Threading;
using System.Threading.Tasks;
using System.Threading.Tasks.Sources;
using BenchmarkDotNet.Attributes;
#if !DEBUG
using BenchmarkDotNet.Running;
@gfoidl
gfoidl / HtmlTemplate.tt
Created May 26, 2020 17:11
.NET Core Text-template preprocessor / rendering
<#@ template debug="true" hostspecific="false" language="C#" #>
<html>
<head>
<style>
.myclass-1 {
margin-bottom: 1em;
background-color: lime;
}
</style>
</head>
@gfoidl
gfoidl / Vector-Printer.cs
Created May 21, 2019 11:44
Prints the contents of a Vector128<sbyte> to the console
using System;
using System.Diagnostics;
using System.Runtime.CompilerServices;
using System.Runtime.Intrinsics;
namespace gfoidl.Tools.Intrinsics
{
public static class Printer
{
public static bool EnablePrint { get; set; } = true;
@gfoidl
gfoidl / Byte2Hex.cs
Created April 14, 2019 14:06
Byte2Hex conversions
using System;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using BenchmarkDotNet.Attributes;
using BenchmarkDotNet.Running;
// reference for branchless: http://0x80.pl/articles/convert-to-hex.html
namespace ConsoleApp2
{