I hereby claim:
- I am kevin-montrose on github.
- I am kmontrose (https://keybase.io/kmontrose) on keybase.
- I have a public key ASBfSsLoAg8f9loWcPfL6Xu4l94iqNskiJZc49Xf2epekgo
To claim this, I am signing this object:
I hereby claim:
To claim this, I am signing this object:
# This is based on https://github.com/security-code-scan/security-code-scan/blob/master/SecurityCodeScan/Config/Main.yml | |
# IMPORTANT: YML is very strict about indentation and white spaces | |
Version: 2.1 | |
# Set to 'true' to see more warnings | |
AuditMode: false | |
# Allows to define custom anti CSRF attributes and conditions |
using System; | |
using System.Threading; | |
namespace LearnMeAThing.Utilities | |
{ | |
/// <summary> | |
/// An object representing some number of jobs waiting to be completed. | |
/// | |
/// Once WaitForCompletion() returns, references to this object should be | |
/// dropped as it may be handed out by it's associated JobRunner again. |
using System; | |
using System.Threading; | |
namespace LearnMeAThing.Utilities | |
{ | |
/// <summary> | |
/// Interface for a re-runnable job, invoked | |
/// as part of a scheduled | |
/// </summary> | |
delegate void JobDelegate<T>(GameState game, T state); |
using System; | |
using System.Threading; | |
namespace LearnMeAThing.Utilities | |
{ | |
/// <summary> | |
/// Handles running pre-registered jobs across some number of threads. | |
/// | |
/// The idea is: | |
/// - make a job runner with a certain number of threads and a maximum |
<Query Kind="Program"> | |
<NuGetReference>Jil</NuGetReference> | |
<Namespace>Jil</Namespace> | |
<Namespace>System.Runtime.Serialization</Namespace> | |
</Query> | |
void Main() | |
{ | |
var objs = new List<MyBaseClass>(); | |
objs.Add(new MySubClass(new [] { "foo", "bar", 3.0f.ToString() })); |
using System; | |
using System.Collections.Generic; | |
using System.Runtime.CompilerServices; | |
namespace LinqAF | |
{ | |
public static class LinqAFExtensions | |
{ | |
[MethodImpl(MethodImplOptions.AggressiveInlining)] | |
static void Impl<TItem, TEnumerable, TEnumerator>(List<TItem> list, ref TEnumerable e) |
// ***** BenchmarkRunner: Start ***** | |
// Found benchmarks: | |
// OneParam.LinqAF: Job-JNXOUQ(Jit=LegacyJit, Platform=X86, Runtime=Clr, Concurrent=True, Server=True) | |
// OneParam.LINQ2Objects: Job-JNXOUQ(Jit=LegacyJit, Platform=X86, Runtime=Clr, Concurrent=True, Server=True) | |
// OneParam.LinqAF: Job-BBJZSD(Jit=RyuJit, Platform=X64, Concurrent=True, Server=True) | |
// OneParam.LINQ2Objects: Job-BBJZSD(Jit=RyuJit, Platform=X64, Concurrent=True, Server=True) | |
// Validating benchmarks: | |
// ************************** | |
// Benchmark: OneParam.LinqAF: Job-JNXOUQ(Jit=LegacyJit, Platform=X86, Runtime=Clr, Concurrent=True, Server=True) |
public static bool ContainsTokenMonty(string value, string token, char delimiter = ';') | |
{ | |
// this code assumes you're running x64 | |
// it _works_ regardless, but some ifdef junk for x32 | |
// would be handy if you care about ideal x32 perf | |
const int charsPerLong = sizeof(long) / sizeof(char); // 4 | |
const int charsPerInt = sizeof(int) / sizeof(char); // 2 | |
const int bytesPerChar = sizeof(char) / sizeof(byte); // 2 |
const string TypeUrl = "your-elastic-type-url-here"; | |
const int NumRequests = 100000; | |
void Main() | |
{ | |
var randomIds = Enumerable.Range(0, NumRequests).Select(i => Guid.NewGuid()).ToList(); | |
var pipelined = ProfileRequests(randomIds, Pipelined); | |
var nonPipelined = ProfileRequests(randomIds, NonPipelined); | |