Skip to content

Instantly share code, notes, and snippets.

View lilith's full-sized avatar
🎯
Focusing

Lilith River lilith

🎯
Focusing
  • Imazen
  • Broomfield, CO
  • 05:10 (UTC -06:00)
View GitHub Profile
@lilith
lilith / perf.md
Last active August 29, 2015 14:21

Benchmarks

The following benchmarks were created by opening the FastScaling solution on commit de24b168 and running the Benchmark program in 64-bit Release mode, using an Azure D14 instance with Visual Studio 2015 RC installed. Source images are 4,000 x 4,000 jpeg images, and destination images are 800x800 jpegs.

This benchmark measures only rendering performance (it excludes jpeg encoding/decoding, which is not affected by FastScaling)

FastScaling vs DrawImage (Azure D14 instance)

This benchmark measures end-to-end image decoding, rendering, and re-encoding. It excludes I/O. FastScaling vs DrawImage (including decode and encode) (Azure D14 instance)

Using 16 seq. runs, 2 || on 8 threads(64-bit). Segment 'bit' w/ mem barrier. Input: blank_1600x1600.png (1600x1600) (png)
Config Sequential Parallel Percent concurrent Instructions
FastScaling blur - bit 149.55ms 298.05 .. 345.55ms 82.13% t=8 ;width=800;f.blur.percent=500
bit>process>prepdest 0.77ms ||8.07ms -72.64%||
bit>process>render>managed_perform_render exclusive: 7.94ms ||8.66 .. 21.48ms|| inclusive: 148.48ms ||286.62ms 82.70%||
bit>process>render> perform_render exclusive: 0.14ms ||0.48 .. 5.68ms|| inclusive: 140.50ms ||271.69ms 81.85%||
bit>process>render> convert_srgb_to_linear 9.10ms ||17.32 .. 45.39ms -315.26%|| calls: 600
bit>process>render> ScaleBgraFloatRows 15.29ms ||26.67ms -156.24%|| calls: 600
bit>process>render> convolve kernel a exclusive: 0.04 .. 0.08ms ||0.09 .. 4.28ms|| inclusive: 96.73ms ||169.90ms 67.00%|| calls: 600
@lilith
lilith / pipeline.md
Last active August 29, 2015 14:20
ImageResizer HTTP pipeline

ImageResizer has traditionally taken a very minimalist approach to touching the HTTP pipeline.

  1. Only handle PostAuthorizeRequest and PreSendRequestHeaders events.

  2. PostAuthorizeRequest only takes action if both (a) there are image processing commands, and (b) the file has an image-type file extension.

  3. We relied on StaticFileModule to deliver cached, static assets after we called RewritePath during PostAuthorizeRequest. Our cache-miss path used a naive HttpHandler without byte-range support.

If a custom VirtualPathProvider was registered, we relied on StaticFileHandler to serve unmodifed versions of those files. Modified versions would be served either by StatciFileModule after being written to disk, or by a naive handler upon cache-miss.

+ export DOCS_PATH=rust-1.0.0-beta-x86_64-unknown-linux-gnu/rust-docs/share/doc/rust/html
+ DOCS_PATH=rust-1.0.0-beta-x86_64-unknown-linux-gnu/rust-docs/share/doc/rust/html
+ export DOCSET_ID=rust
+ DOCSET_ID=rust
+ export 'DOCSET_NAME=Rust 1.0.0 Beta'
+ DOCSET_NAME='Rust 1.0.0 Beta'
+ export DOCSET_GROUP=rust
+ DOCSET_GROUP=rust
+ export DOCSET_GUIDES=1
+ DOCSET_GUIDES=1
==39004== Memcheck, a memory error detector
==39004== Copyright (C) 2002-2013, and GNU GPL'd, by Julian Seward et al.
==39004== Using Valgrind-3.10.1 and LibVEX; rerun with -h for copyright info
==39004== Command: ./test_program
==39004==
--39004-- run: /usr/bin/dsymutil "./test_program"
===============================================================================
All tests passed (348 assertions in 20 test cases)
==39004==

In order to write software that targets both .NET 4.6 and .NET Core, we need .NET 4.6 to fix several oversights.

Visual studio, ASP.NET, deploy tooling, test tooling, and even the .NET runtime make some bad assumptions:

  • Every .dll is a .NET dll.
  • Managed .dlls do not depend on native .dlls
  • No project ever needs to target or deploy to more than one architecture/platform.
  • Nobody needs to adjust native or managed dll search paths at runtime.

Specifically, what low-level APIs do we need before we can fix dependency loading ourselves?

{
"Name":"reunion",
"Type":"rubygem",
"Repo":"github.com/imazen/reunion",
"Globs":null,
"Files":[
"./Gemfile",
"./Gemfile.lock",
"./Rakefile",
"./banks.md",
[
{
"Raw": [
"byebug",
">= 0"
],
"Target": {
"ToUnit": "byebug",
"ToUnitType": "rubygem",
"ToVersionString": ">= 0",

http://www.irs.gov/publications/p926/ar02.html

Workers who are not your employees. If only the worker can control how the work is done, the worker is not your employee but is self-employed. A self-employed worker usually provides his or her own tools and offers services to the general public in an independent business. A worker who performs child care services for you in his or her home generally is not your employee. If an agency provides the worker and controls what work is done and how it is done, the worker is not your employee.

A business will need