Skip to content

Instantly share code, notes, and snippets.

View etishor's full-sized avatar

Iulian Margarintescu etishor

View GitHub Profile
@etishor
etishor / gist:3257c3b218246490bdb6
Created April 30, 2015 15:24
Performance improvements on Metrics.NET : 32 core Amazon EC2 instance
## Master branch on 32 core EC2
PS C:\temp\m-master> .\Metrics.StupidBenchmarks.exe meter -c 64
Meter 1 threads 388,000 ops/sec | avg duration 2,578 ns | 388,000 avg ops/sec per thread
Meter 2 threads 5,981,200 ops/sec | avg duration 334 ns | 2,990,600 avg ops/sec per thread
Meter 4 threads 4,268,600 ops/sec | avg duration 943 ns | 1,067,150 avg ops/sec per thread
Meter 6 threads 3,569,200 ops/sec | avg duration 1,749 ns | 594,867 avg ops/sec per thread
Meter 8 threads 3,447,200 ops/sec | avg duration 2,591 ns | 430,900 avg ops/sec per thread
Meter 16 threads 3,585,200 ops/sec | avg duration 4,942 ns | 224,075 avg ops/sec per thread
Meter 32 threads 4,705,200 ops/sec | avg duration 7,064 ns | 147,038 avg ops/sec per thread
@etishor
etishor / gist:32d2a502086d86ebe117
Created April 29, 2015 14:52
impact of adding a metrics.net timer
WorkWithoutTimer 1 threads 27,634 ops/sec | avg duration 36,189 ns | 27,634 avg ops/sec per thread
WorkWithoutTimer 2 threads 55,202 ops/sec | avg duration 36,231 ns | 27,601 avg ops/sec per thread
WorkWithoutTimer 4 threads 103,718 ops/sec | avg duration 38,568 ns | 25,930 avg ops/sec per thread
WorkWithoutTimer 6 threads 140,080 ops/sec | avg duration 42,840 ns | 23,347 avg ops/sec per thread
WorkWithoutTimer 8 threads 165,714 ops/sec | avg duration 48,968 ns | 20,714 avg ops/sec per thread
WorkWithoutTimer 16 threads 175,750 ops/sec | avg duration 113,574 ns | 10,984 avg ops/sec per thread
WorkWithoutTimer 32 threads 156,296 ops/sec | avg duration 212,504 ns | 5,861 avg ops/sec per thread
WorkWithTimer 1 threads 27,202 ops/sec | avg duration 36,762 ns | 27,202 avg ops/sec per thread
WorkWithTimer 2 threads 53,966 ops/sec | avg duration 37,063 ns | 26,983 avg ops/sec
@etishor
etishor / gist:cd4f8019432bca2757b9
Created April 27, 2015 21:14
Concurrency Utilities 0.1.4 bench results
NoOp 1 threads 398,837,600 ops/sec | avg duration 3 ns | 398,837,600 avg ops/sec per thread
NoOp 2 threads 757,889,000 ops/sec | avg duration 3 ns | 378,944,500 avg ops/sec per thread
NoOp 4 threads 1,495,783,200 ops/sec | avg duration 3 ns | 373,945,800 avg ops/sec per thread
NoOp 6 threads 1,984,404,200 ops/sec | avg duration 3 ns | 330,734,033 avg ops/sec per thread
NoOp 8 threads 2,286,649,800 ops/sec | avg duration 4 ns | 285,831,225 avg ops/sec per thread
NoOp 16 threads 2,476,672,200 ops/sec | avg duration 9 ns | 154,792,012 avg ops/sec per thread
NoOp 32 threads 2,541,943,000 ops/sec | avg duration 20 ns | 79,435,719 avg ops/sec per thread
AtomicLong.Increment 1 threads 119,079,800 ops/sec | avg duration 8 ns | 119,079,800 avg ops/sec per thread
AtomicLong.Increment 2 threads 45,976,800 ops/sec | avg duration 44 ns | 22,988,400 avg ops/sec per thread
AtomicLong.Increment 4 threads 49,518,800 ops/sec |
@etishor
etishor / gist:51a863cf588ceb483039
Created February 5, 2015 20:12
Comments to sam's talk
[describe better] What were you building?
Delivery guarantees for messages?
Messaging infrastructure?
Perf cost of adding messaging or http or whatever
Gains? Why move to micro services?
Where is the differences from classic SOA?
How do you gather business metrics?
metrics apply to other archs not just micro services
SOA service vs MicroService [single responsibility vs bounded context]
You might want to make it clearer why micro services are better or what are they better for

Keybase proof

I hereby claim:

  • I am etishor on github.
  • I am eti (https://keybase.io/eti) on keybase.
  • I have a public key whose fingerprint is 2223 A517 7F02 2E18 7878 C84A 7E3C FE47 A1A0 BBE8

To claim this, I am signing this object:

using System;
using Nancy;
using Nancy.Hosting.Self;
namespace ConsoleApplication3
{
class Program
{
static void Main(string[] args)
{
--- libexec/rtld-elf/rtld.c.orig Fri Sep 24 08:04:52 2004
+++ libexec/rtld-elf/rtld.c Sun Oct 17 03:37:44 2004
@@ -129,6 +129,7 @@
static void unref_dag(Obj_Entry *);
static void ref_dag(Obj_Entry *);
+void *_dlsym(void *, const char *);
void r_debug_state(struct r_debug*, struct link_map*);
/*
/***************************************************************************
* Copyright (C) 2005 by Iulian M *
* eti@erata.net *
***************************************************************************/
#ifndef ETKSYNCHTTP_H
#define ETKSYNCHTTP_H
#include <QHttp>
#include <QEventLoop>
#include <QBuffer>
@etishor
etishor / gist:4051366
Created November 10, 2012 15:12
Map reduce index
public class User
{
public string Id { get; set; }
public string[] AssignedFields { get; set; }
}
public class WorkItem
{
public string DocumentId { get; set; }
public string FieldId { get; set; }
@etishor
etishor / gist:4031390
Created November 7, 2012 12:40
Multi map reduce index
using System;
using System.Linq;
using Raven.Client;
using Raven.Client.Document;
using Raven.Client.Indexes;
namespace RavenTest
{
public class ExtractionUser
{
public string Id { get; set; }