An open API service indexing awesome lists of open source software.

https://github.com/dalenewman/transformalize.transform.csscript

A CS-Script Transform for Transformalize
https://github.com/dalenewman/transformalize.transform.csscript

csharp csharp-script etl transformalize

Last synced: 9 months ago
JSON representation

A CS-Script Transform for Transformalize

Awesome Lists containing this project

README

          

### Overview

This adds C# transform to Transformalize using [CS-Script](https://github.com/oleg-shilo/cs-script). It is a plug-in compatible with Transformalize 0.6.1-beta.

### Usage

```xml














```

This produces `SomethingWonderful 2`

Note: This csharp transform allows you to set a `remote` attribute on the field to `true`. Doing
this runs the code in a remote `AppDomain`. This avoids the memory leak associated with running
dyanamically loaded c# assemblies in the host's `AppDomain`. Unfortunately, running the code
remotely is only half as fast as running it in-process.

### Benchmark

``` ini

BenchmarkDotNet=v0.11.5, OS=Windows 10.0.17134.407 (1803/April2018Update/Redstone4)
Intel Core i7-7700HQ CPU 2.80GHz (Kaby Lake), 1 CPU, 8 logical and 4 physical cores
Frequency=2742192 Hz, Resolution=364.6718 ns, Timer=TSC
[Host] : .NET Framework 4.7.2 (CLR 4.0.30319.42000), 32bit LegacyJIT-v4.7.3221.0
LegacyJitX64 : .NET Framework 4.7.2 (CLR 4.0.30319.42000), 64bit LegacyJIT/clrjit-v4.7.3221.0;compatjit-v4.7.3221.0

Job=LegacyJitX64 Jit=LegacyJit Platform=X64
Runtime=Clr

```
| Method | Mean | Error | StdDev | Ratio | RatioSD |
|------------------------ |-----------:|----------:|----------:|------:|--------:|
| '10000 test rows' | 916.0 ms | 11.914 ms | 9.949 ms | 1.00 | 0.00 |
| '10000 1 local csharp' | 957.5 ms | 18.817 ms | 21.669 ms | 1.05 | 0.03 |
| '10000 1 remote csharp' | 1,483.2 ms | 8.235 ms | 7.300 ms | 1.62 | 0.02 |