Skip to content

Instantly share code, notes, and snippets.

@the8472
the8472 / async_iter.rs
Created December 17, 2023 22:35
async iter perf for small items
#![feature(coroutines)]
#![feature(coroutine_trait)]
#![feature(unchecked_math)]
#![feature(decl_macro)]
#![feature(noop_waker)]
use std::future::Future;
use std::thread::yield_now;
use std::time::Duration;
use std::{task::{Poll, Context, Waker}, pin::{Pin, pin}};
#![feature(const_type_id)]
#![feature(const_maybe_uninit_array_assume_init)]
#![feature(const_maybe_uninit_write)]
#![feature(const_maybe_uninit_uninit_array)]
#![feature(maybe_uninit_array_assume_init)]
#![feature(maybe_uninit_uninit_array)]
#![feature(inline_const)]
#![feature(const_mut_refs)]
use core::mem::transmute;
use core::mem::MaybeUninit;
@the8472
the8472 / bench (O3, 1CGU).txt
Last active January 18, 2020 21:09
vec specialization benchmark results
name ../rust2/x-opt.bench ns/iter x-opt.bench ns/iter diff ns/iter diff % speedup
vec::bench_chain_chain_collect 3,074 (+/- 76) 3,289 (+/- 104) 215 6.99% x 0.93
vec::bench_chain_collect 3,074 (+/- 129) 3,286 (+/- 88) 212 6.90% x 0.94
vec::bench_chain_extend_ref 3,066 (+/- 138) 3,307 (+/- 73) 241 7.86% x 0.93
vec::bench_chain_extend_value 3,080 (+/- 95) 3,293 (+/- 74) 213 6.92% x 0.94
vec::bench_clone_0000 15 (+/- 0) 15 (+/- 0) 0 0.00% x 1.00
vec::bench_clone_0010 44 (+/- 1) (227 MB/s) 48 (+/- 1) (208 MB/s) 4 9.09% x 0.92
vec::bench_clone_0100 184 (+/- 5) (543 MB/s) 175 (+/- 3) (571 MB/s)
@the8472
the8472 / dht.log
Last active July 4, 2017 17:59
get_peers verbose log
[2017-07-04T16:10:18.324077Z][Verbose] PeerLookupTask 108661049 target:028EA9E1 BA7E9A88 E3955FC8 ABF406A8 60605BCA todo:55 SENT:25 RECEIVED:10 STALLED:0 FAILED:15 SENT_SINCE_RECEIVE:6 activeOnly:0 unanswered:0 srv: D58EDB92 CED1221D 7BEABA36 4BA42651 0E0FEBB3 FINISHED time to finish:PT12.466S name:null
Task 108661049 done SENT:25 RECEIVED:10 STALLED:0 FAILED:15 SENT_SINCE_RECEIVE:6 activeOnly:0 unanswered:0 closestset: 8 tailMod:0 headMod:7 head:22 tail:19
028EA9E1 BA7E9A88 E3955FC8 ABF406A8 60605BCA
028EAB74 919F450D BB0A0A1D 80101CA1 7720F738 00000295 2BE1DF85 589F55D5 2BE41A09 1740ACF2 src:7
028EAC09 ACCFEEEC 12B34420 1122EF79 3F2F4737 000005E8 16B17464 F1261BE8 BAD6E9D1 5F4F1CFD src:6
028EAFF1 F1BBE9EB B3A6DB3C 870C3E99 245E0D90 00000610 4BC57363 503384F4 2CF83831 443E565A src:5
028EAF9C 0F4B7764 3151CE90 0F8EEE4B 70FFC490 0000067D B535EDEC D2C49158 A47AE8E3 109F9F5A src:4
028EA249 F1F1BBE9 EBB3A6DB 3C870C3E 99245E52 00000BA8 4B8F2161 0826F913 97730A96 F9440598 src:4
028EA529 EEAD36A5 41583A3A 3500
[2016-06-05T23:09:42.561Z][Verbose] PeerLookupTask 1404 target:DFE43711 5F5127E1 D00D6C0C 1CA8B7B0 60588414 todo:120 SENT:34 RECEIVED:20 STALLED:3 FAILED:11 SENT_SINCE_RECEIVE:0 activeOnly:0 unanswered:3 srv: 794A1D46 2A62604D F2677C23 314A900A 44FCF0CE finished time to finish:PT5.267S name:null
Task 1404 done SENT:34 RECEIVED:20 STALLED:3 FAILED:11 SENT_SINCE_RECEIVE:0 activeOnly:0 unanswered:3 closestset: 8 tailMod:1 headMod:4 head:23 tail:18
DFE43711 5F5127E1 D00D6C0C 1CA8B7B0 60588414
DFE43677 6349C0FB 845264BC 8AD5974A 84C0227E 00000166 3C18E71A 545F08B0 967D20FA E498A66A 1.2190097033989033E41 src:3
DFE434DE B3124DC8 43BB8BA6 1F035A7D 093825B7 000003CF EC436A29 93B6E7AA 03ABEDCD 6960A1A3 3.3208935559203926E41 src:1
DFE432D1 F754A666 114BFB4D C083E28A 809BBC1C 000005C0 A8058187 C1469741 DC2B553A E0C33808 5.01118982999584E41 src:6
DFE43E70 A4CFEEE1 8AB5AC91 FA265DB5 280F84C5 00000961 FB9EC900 5AB8C09D E68EEA05 485700D1 8.173524236638113E41 src:6
DFE4253C 870C3E99 245E0D1C 06B747DE B3124DA6 0000122D D
### remote RPCs
Method REQ | RSP Errors
PING 3832900629 | 3832944684 0
FIND_NODE 15033719926 | 15028735737 0
GET_PEERS 30474134400 | 30482866044 0
ANNOUNCE_PEER 3739103559 | 3541140713 198040816
GET 661604 | 661600 0
PUT 76383 | 61719 14664
UNKNOWN 120320970 | 120321404 62307537
@the8472
the8472 / replace-channel.js
Created December 17, 2015 08:41
replacing a channel instead of calling `redirect()`
"use strict";
const { Cc, Ci, Cr } = require('chrome');
const ioservice = Cc['@mozilla.org/network/io-service;1'].getService(Ci.nsIIOService);
const events = require("sdk/system/events");
const listener = function(event) {
let {subject, type, data} = event;
// ==UserScript==
// @name test
// @namespace https://github.com/the8472
// @include *
// @version 1
// @grant GM_setValue
// @grant GM_getValue
// @run-at document-end
// ==/UserScript==
@the8472
the8472 / gist:ae462c8f8d598a7be671
Created April 22, 2015 00:51
JMH bench for custom executor
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.CompletableFuture;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.ScheduledThreadPoolExecutor;
import java.util.concurrent.TimeUnit;
import org.openjdk.jmh.annotations.Benchmark;
import org.openjdk.jmh.annotations.BenchmarkMode;
import org.openjdk.jmh.annotations.Measurement;
buildView: function() {
let window = windowUtils.getMostRecentBrowserWindow();
let doc = window.document;
let content = doc.getElementById("appcontent");
let splitter = doc.createElementNS(XUL_NS, 'splitter');
splitter.setAttribute("resizeafter","closest")
splitter.setAttribute("resizebefore","closest")