Skip to content

Instantly share code, notes, and snippets.

View draveness's full-sized avatar
🌟
𝚊𝚋𝚜𝚝𝚛𝚊𝚌𝚝𝚒𝚘𝚗 & 𝚌𝚘𝚖𝚙𝚕𝚎𝚡𝚒𝚝𝚢

Draven draveness

🌟
𝚊𝚋𝚜𝚝𝚛𝚊𝚌𝚝𝚒𝚘𝚗 & 𝚌𝚘𝚖𝚙𝚕𝚎𝚡𝚒𝚝𝚢
View GitHub Profile
@draveness
draveness / benchmark_foreign_key.go
Last active October 14, 2020 07:42
Benchmark Foreign Key
package main
import (
"testing"
"github.com/jinzhu/gorm"
_ "github.com/jinzhu/gorm/dialects/mysql"
)
type Post struct {
@draveness
draveness / float64_precision.go
Created April 21, 2020 13:19
Deposit and Withdraw with float64
package main
import (
"fmt"
)
var balance float64 = 0
func main() {
deposit(.1)
#include <math.h>
#include <stdio.h>
double attackerSuccessProbability(double q, int z) {
double p = 1.0 - q;
double lambda = z * (q / p);
double sum = 1.0;
int i, k;
for (k = 0; k <= z; k++) {
double poisson = exp(-lambda);
@draveness
draveness / golang-syscall.csv
Created September 6, 2019 07:39
golang syscall type
Syscall Type
SYS_TIME RawSyscall
SYS_GETTIMEOFDAY RawSyscall
SYS_SETRLIMIT RawSyscall
SYS_GETRLIMIT RawSyscall
SYS_EPOLL_WAIT Syscall
SYS_MMAP2 Syscall
SYS__NEWSELECT Syscall
SYS_SETGROUPS32 RawSyscall
SYS_GETGROUPS32 RawSyscall
@draveness
draveness / benchmark_timers.go
Created July 11, 2019 15:07
Benchmark Golang Timers
package main
import (
"fmt"
"sort"
"sync"
"testing"
"time"
)
@draveness
draveness / benchmark_mutex_and_channel_test.go
Created July 11, 2019 01:13
Benchmark Mutex vs Channel
package main
import (
"errors"
"sync"
"testing"
)
func BenchmarkChannel(b *testing.B) {
ch := make(chan error, 1)
package main
import (
"fmt"
"math/rand"
"sort"
"sync"
"time"
"github.com/RussellLuo/timingwheel"
@draveness
draveness / selectgo_loop.go
Created March 29, 2019 13:25
selectgo loop
func selectgo(cas0 *scase, order0 *uint16, ncases int) (int, bool) {
// ...
loop:
// ...
for i := 0; i < ncases; i++ {
casi = int(pollorder[i])
cas = &scases[casi]
c = cas.c
switch cas.kind {
@draveness
draveness / main.go
Last active March 8, 2019 05:39
SQL Mock in Golang
package main
import (
"database/sql"
_ "github.com/go-sql-driver/mysql"
)
func recordStats(db *sql.DB, userID, productID int64) (err error) {
tx, err := db.Begin()
@draveness
draveness / service.go
Last active January 26, 2021 06:08
Monkey Patch Mock in Golang
package service
import (
pwi "pkg-without-interface"
)
type service struct {}
func (s *service) ListPosts() []Post {
posts := pwi.ListPosts() // ListPosts is a pkg function.