Bert Belder
41c7e96f1a
Refactor zero-copy buffers for performance and to prevent memory leaks
...
* In order to prevent ArrayBuffers from getting garbage collected by V8,
we used to store a v8::Persistent<ArrayBuffer> in a map. This patch
introduces a custom ArrayBuffer allocator which doesn't use Persistent
handles, but instead stores a pointer to the actual ArrayBuffer data
alongside with a reference count. Since creating Persistent handles
has quite a bit of overhead, this change significantly increases
performance. Various HTTP server benchmarks report about 5-10% more
requests per second than before.
* Previously the Persistent handle that prevented garbage collection had
to be released manually, and this wasn't always done, which was
causing memory leaks. This has been resolved by introducing a new
`PinnedBuf` type in both Rust and C++ that automatically re-enables
garbage collection when it goes out of scope.
* Zero-copy buffers are now correctly wrapped in an Option if there is a
possibility that they're not present. This clears up a correctness
issue where we were creating zero-length slices from a null pointer,
which is against the rules.
2019-05-01 21:11:09 +02:00
Bert Belder
abdb98a251
core: remove unused function StrBufNullAllocPtr()
2019-05-01 19:47:15 +02:00
Bartek Iwańczuk
8978870808
Rename test targets ( #2262 )
2019-05-01 09:48:56 -04:00
Kevin (Kun) "Kassimo" Qian
7237e9d34a
fs: add Deno.utime/Deno.utimeSync ( #2241 )
2019-05-01 05:08:11 -04:00
andy finch
c36b5dd01c
Make error in ast_util more informative. ( #2252 )
2019-04-30 12:15:03 -07:00
迷渡
bbeb30fc5e
Make atob
follow the spec ( #2242 )
2019-04-30 11:25:37 -07:00
Ryan Dahl
a217e55fec
Fix another flaky assert ( #2246 )
2019-04-30 10:43:00 -07:00
Ryan Dahl
474d47e841
Fix max_latency benchmark on zero value ( #2247 )
2019-04-30 10:42:36 -07:00
Ryan Dahl
200bed9277
Upgrade V8 to 7.6.53
2019-04-29 19:56:16 -07:00
Ryan Dahl
6c137342d7
flags: fix merge error ( #2244 )
2019-04-29 18:35:25 -07:00
迷渡
4dcdd88155
removes ? from URL when deleting all params ( #2217 )
2019-04-29 16:45:20 -07:00
Bartek Iwańczuk
636827a1d5
Rewrite flags.rs::parse_flags ( #2237 )
2019-04-29 16:43:06 -07:00
Kitson Kelly
1a0f53a807
Add support for custom tsconfig.json ( #2089 )
...
Use `--config`
2019-04-29 07:58:31 -07:00
Ryan Dahl
73be183864
Disable flaky assert in killSuccess ( #2230 )
2019-04-28 14:16:37 -07:00
Ryan Dahl
1af02b405e
Revert "recover: #1517 Kill all pending accepts when TCP listener is closed ( #2224 )" ( #2239 )
...
Crashes while running wrk against
js/deps/https/deno.land/std/http/http_bench.ts
This reverts commit 972ac03858
.
2019-04-28 14:15:15 -07:00
迷渡
a4551c853e
fix test description for atob
( #2232 )
2019-04-28 09:14:57 -07:00
Yusuke Sakurai
972ac03858
recover: #1517 Kill all pending accepts when TCP listener is closed ( #2224 )
2019-04-27 11:33:24 -07:00
Bartek Iwańczuk
02596c08bd
disable --version flag from deno version ( #2226 )
2019-04-27 11:19:50 -07:00
Ryan Dahl
78bce41c14
Use alt logos on benchmarks and manual page ( #2211 )
2019-04-27 10:48:15 -07:00
迷渡
6c9e0530f5
URLSearchParams init with itself ( #2218 )
2019-04-27 10:16:28 -07:00
Greg Altman
1d4b14e306
core: add Deps::to_json() ( #2223 )
2019-04-27 10:04:09 -07:00
Ryan Dahl
40d8ef1ec9
v0.3.10
2019-04-25 13:59:18 -06:00
Bartek Iwańczuk
aa85a4d288
Rename CLI flags to subcommands ( #2212 )
2019-04-25 12:59:49 -06:00
Ryan Dahl
b426ecce80
compile lib.deno_runtime.d.ts into executable ( #2209 )
2019-04-25 12:27:30 -06:00
Bartek Iwańczuk
b7d8a0c6f6
Rename deno prefetch to deno fetch ( #2210 )
2019-04-25 13:47:33 -04:00
David Stone
098d6fffab
Fix anchor links and add spinner to the benchmarks page ( #2205 )
2019-04-25 13:20:10 -04:00
Ryan Dahl
e725b26b28
v0.3.9
2019-04-25 17:44:34 +02:00
迷渡
8578ed4e7f
URLSearchParams
deleting appended multiple (#2201 )
2019-04-25 09:29:50 -04:00
Ryan Dahl
7fc9d7d62a
core: Add test for snapshotting from Rust ( #2197 )
2019-04-24 21:43:06 -04:00
Ryan Dahl
f694823507
Fix symlinkSyncNotImplemented ( #2198 )
2019-04-24 20:34:33 -04:00
Ryan Dahl
6bece270b2
Upgrade CI to Node v12 ( #2193 )
2019-04-24 20:33:53 -04:00
Ryan Dahl
d68b44b6b2
core: make Isolate concrete, remove Dispatch trait ( #2183 )
...
Op dispatch is now dynamically dispatched, so slightly less efficient.
The immeasurable perf hit is a reasonable trade for the API simplicity
that is gained here.
2019-04-23 18:58:00 -04:00
Ryan Dahl
675919e915
Use tokio_threadpool's new panic_handler ( #2188 )
2019-04-23 16:27:44 -04:00
Bert Belder
6caf865507
third_party: upgrade rust crates
2019-04-23 18:01:57 +02:00
Yingbo (Max) Wang
da64fba046
symlink: Ignore type parameter on non-Windows platforms ( #2185 )
...
Fixes #2169
2019-04-23 09:47:29 -04:00
Tomislav Fabeta
d940801754
Simplify logic in URLSearchParams, Buffer, Console ( #2174 )
2019-04-22 10:37:49 -04:00
Kevin (Kun) "Kassimo" Qian
1d4b92ac85
Add Deno.kill(pid, signo) and process.kill(signo) (Unix only) ( #2177 )
2019-04-21 21:26:56 -04:00
Ryan Dahl
9dfebbc949
Fix eslint warnings ( #2151 )
...
Co-authored-by: Bartek Iwańczuk <biwanczuk@gmail.com>
Co-authored-by: LE GOFF Vincent <g_n_s@hotmail.fr>
2019-04-21 16:40:10 -04:00
Tomislav Fabeta
6cded14bdf
Issue/2170 ( #2175 )
...
* Consistency using requiredArguments method
Replaced tuple length check in Headers class with requiredArguments
method.
* Consistency using requiredArguments method
Replaced tuple length check in UrlSearchParams class with
requiredArguments method.
* fmt
2019-04-21 15:40:15 -04:00
Ryan Dahl
f77b112797
Remove dead code js/compiler_test.ts ( #2160 )
2019-04-21 15:39:27 -04:00
Ryan Dahl
8ba6e4fa13
Fix flaky tests ( #2164 )
2019-04-21 14:06:57 -04:00
Ryan Dahl
961f87e1c5
Fixes #2033 , shared queue push bug ( #2158 )
2019-04-21 12:16:55 -04:00
Bartek Iwańczuk
cd19da62d9
Refactor CLI entry point ( #2157 )
...
Changes "deno --types" to "deno types"
and "deno --prefetch" to "deno prefetch"
2019-04-21 11:34:18 -04:00
Matt Harrison
c08075053f
Fix link to http_bench example in core README ( #2167 )
2019-04-21 10:40:44 -04:00
Daniel Schildt
df8fb60709
docs: improve clarity of the text ( #2165 )
2019-04-20 22:48:48 -04:00
Jonathon Orsi
648d2f3ba8
fix typo in permissions explanation ( #2162 )
2019-04-20 15:12:00 -04:00
Maxim Mazurok
8dc8f22760
Exclude .png files from git auto-EOL ( #2161 )
...
Fix #1995 for users with the old git version
2019-04-20 15:11:16 -04:00
Kevin (Kun) "Kassimo" Qian
c8db224efe
Make Deno/Deno.core not deletable/writable ( #2153 )
2019-04-19 20:39:54 -04:00
Ryan Dahl
0796a8f2f7
v0.3.8
2019-04-19 11:41:13 -04:00
Ryan Dahl
5e5c8553e7
core: test Modules::deps and handle error cases better ( #2141 )
2019-04-19 11:18:46 -04:00