Skip to content

Instantly share code, notes, and snippets.

View ikruglov's full-sized avatar

Ivan Kruglov ikruglov

  • Amsterdam, the Netherlands
View GitHub Profile
@ikruglov
ikruglov / gist:9a80e98734b21a680154
Created May 24, 2015 21:32
Nice trick to detect endianess
typedef enum { XXH_bigEndian=0, XXH_littleEndian=1 } XXH_endianess;
#ifndef XXH_CPU_LITTLE_ENDIAN // It is possible to define XXH_CPU_LITTLE_ENDIAN externally, for example using a compiler switch
static const int one = 1;
# define XXH_CPU_LITTLE_ENDIAN (*(char*)(&one))
#endif
usage:
XXH_endianess endian_detected = (XXH_endianess)XXH_CPU_LITTLE_ENDIAN;
taken from https://github.com/Cyan4973/xxHash/blob/master/xxhash.c
#!/usr/bin/perl
# This script expects /proc/zone_info file as input.
# $ perl calc-reclamation-watermarks.pl < /proc/zoneinfo
# The output should look something like the following:
# pagesize: 4096
#
# node 0 high: 449.76 MB 471605248 bytes 115138 pages
# node 0 low: 374.80 MB 393003008 bytes 95948 pages
@ikruglov
ikruglov / gist:2fb8d60341be2f3c4daf
Created August 2, 2014 14:42
golang experiments with pointers #2
package main
import (
"fmt"
"unsafe"
"reflect"
)
func main() {
arr := make([]interface{}, 10)
@ikruglov
ikruglov / gist:4047ea04051817a35094
Created August 2, 2014 14:23
golang experiments with pointers
package main
import (
"fmt"
"unsafe"
"reflect"
)
func main() {
var arr [10]string
perl redis_fork_vs_anyevent.pl 10000 100
N: 10000, DATA LENGTH: 100
s/iter fork anyevent_redis anyevent_hiredis
fork 8.37 -- -26% -91%
anyevent_redis 6.19 35% -- -87%
anyevent_hiredis 0.780 974% 693% --
N: 1000, DATA LENGTH: 1000
Rate fork anyevent_redis anyevent_hiredis
fork 1.28/s -- -59% -94%