- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在比较dart和nodejs。
我重写了nodeJs应用程序以解析并返回给HTTP客户端大量的json(约1000个对象)。出于测试目的,从文件中读取了json。然后将json解析为Map,转换为新的表示形式并响应客户端。
可在此处找到示例应用程序mapping json sample app
当我增加并发服务 call 的数量时,我注意到响应时间增加了。
这是10个并发线程处理40个请求的报告
document Length: 613480 bytes
Concurrency Level: 10
Time taken for tests: 9.079 seconds
Complete requests: 40
Failed requests: 0
Write errors: 0
Total transferred: 24542960 bytes
HTML transferred: 24539200 bytes
Requests per second: 4.41 [#/sec] (mean)
Time per request: 2269.770 [ms] (mean)
Time per request: 226.977 [ms] (mean, across all concurrent requests)
Transfer rate: 2639.89 [Kbytes/sec] received
Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 0 0.8 0 5
Processing: 1250 2111 300.0 2126 2880
Waiting: 1024 1917 307.9 1948 2840
Total: 1255 2111 299.6 2126 2880
Percentage of the requests served within a certain time (ms)
50% 2126
66% 2213
75% 2233
80% 2243
90% 2446
95% 2865
98% 2880
99% 2880
100% 2880 (longest request)
Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 0 0.1 0 1
Processing: 279 447 140.9 415 1033
Waiting: 224 397 140.1 405 1000
Total: 279 447 140.9 415 1033
Percentage of the requests served within a certain time (ms)
50% 415
66% 422
75% 430
80% 434
90% 463
95% 1007
98% 1033
99% 1033
100% 1033 (longest request)
Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 0 0.1 0 1
Processing: 189 207 14.7 205 265
Waiting: 186 205 14.5 203 262
Total: 189 207 14.7 205 265
Percentage of the requests served within a certain time (ms)
50% 205
66% 209
75% 214
80% 217
90% 224
95% 240
98% 265
99% 265
100% 265 (longest request)
Document Length: 807396 bytes
Concurrency Level: 10
Time taken for tests: 3.955 seconds
Complete requests: 40
Failed requests: 0
Write errors: 0
Total transferred: 32304320 bytes
HTML transferred: 32295840 bytes
Requests per second: 10.11 [#/sec] (mean)
Time per request: 988.661 [ms] (mean)
Time per request: 98.866 [ms] (mean, across all concurrent requests)
Transfer rate: 7977.25 [Kbytes/sec] received
Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 0 0.5 0 3
Processing: 954 987 18.6 1000 1007
Waiting: 116 567 272.1 598 999
Total: 954 987 18.7 1001 1007
Percentage of the requests served within a certain time (ms)
50% 1001
66% 1004
75% 1004
80% 1004
90% 1005
95% 1005
98% 1007
99% 1007
100% 1007 (longest request)
{
"numFound": 1234,
"results": [
{
"cid": "id",
"cir": "id",
"cn": "name",
"cbr": "string",
"crn": "string",
"dep": "string",
"depid": "id",
"fn": "string",
"jvid": "id",
"loc": "string",
"pid": "id",
"date": int,
"toe": "string",
"ujn": "string",
"vn": "string",
"ind": "string",
"indid": "id",
"fun": "string",
"funid": "id",
"des": "string",
"date2": int,
"uuid": "string",
"elv": "string",
"elvid": "id",
"cfv": Array<Objects>
}
]
}
perf record -g -- dart --generate_perf_events_symbols start.dart
75.86% dart [kernel.kallsyms] [k] __do_softirq
+ 3.62% dart dart [.] dart::MarkingVisitor::VisitPointers(dart::RawObject**, dart::RawObject**)
+ 1.36% dart dart [.] dart::ScavengerVisitor::VisitPointers(dart::RawObject**, dart::RawObject**)
+ 1.02% dart dart [.] dart::GCSweeper::SweepPage(dart::HeapPage*, dart::FreeList*)
+ 0.96% dart perf-5465.map [.] *dart:core_StringBuffer_writeCharCode
+ 0.74% dart perf-5465.map [.] *dart:convert__Utf8Decoder@0xda80e0a_convert
+ 0.71% dart perf-5465.map [.] *dart:convert__JsonStringifier@0xda80e0a_escape
+ 0.57% dart perf-5465.map [.] *dart:convert__Utf8Encoder@0xda80e0a__fillBuffer@0xda80e0a
+ 0.55% dart libc-2.12.so [.] _wordcopy_fwd_aligned
0.53% dart [kernel.kallsyms] [k] retint_careful
+ 0.52% dart perf-5465.map [.] *dart:core_StringBuffer__addPart@0x36924d72
0.50% dart [kernel.kallsyms] [k] finish_task_switch
0.49% dart dart [.] dart::RawObject::VisitPointers(dart::ObjectPointerVisitor*)
0.41% dart [vsyscall] [.] 0x000000000000014c
0.38% dart libc-2.12.so [.] memmove
0.29% dart libpthread-2.12.so [.] pthread_getspecific
0.29% dart dart [.] dart::FreeList::TryAllocate(long, bool)
0.28% dart perf-5465.map [.] dart:core__List@0x36924d72__List@0x36924d72.
0.28% dart perf-5465.map [.] *dart:convert__JsonParser@0xda80e0a_parse
0.27% dart perf-5465.map [.] *dart:core_StringBuffer_write
0.27% dart perf-5465.map [.] *package:public-api/publicApi.dart_PostingResultMapper_mapPosting_mapPosting
0.27% dart [kernel.kallsyms] [k] _spin_unlock_irqrestore
0.27% dart dart [.] dart::String::Copy(dart::String const&, long, unsigned char const*, long)
0.27% dart dart [.] dart::VMHandles::AllocateHandle(dart::Isolate*)
0.26% dart perf-5465.map [.] *dart:collection__HashMap@0x23c35ea0&&_LinkedHashMapMixin@0x23c35ea0_forEach
0.25% dart perf-5465.map [.] *dart:convert__JsonStringifier@0xda80e0a_stringifyJsonValue
0.24% dart dart [.] dart::Object::Allocate(long, long, dart::Heap::Space)
0.24% dart perf-5465.map [.] dart:core__StringBase@0x36924d72_codeUnitAt
0.23% dart dart [.] dart::GCMarker::DrainMarkingStack(dart::Isolate*, dart::MarkingVisitor*)
0.22% dart dart [.] dart::ClassTable::UpdateLiveOld(long, long)
0.22% dart perf-5465.map [.] *dart:convert__JsonParser@0xda80e0a_parseString
0.21% dart perf-5465.map [.] *dart:convert__JsonParser@0xda80e0a_parseString
0.20% dart dart [.] dart::String::Copy(dart::String const&, long, dart::String const&, long, long)
0.17% dart dart [.] dart::OneByteString::ConcatAll(dart::Array const&, long, long, long, dart::Heap::Space)
0.16% dart [kernel.kallsyms] [k] __do_page_fault
0.16% dart dart [.] dart::BootstrapNatives::DN_StringBase_substringUnchecked(_Dart_NativeArguments*)
0.15% dart dart [.] dart::String::ConcatAllRange(dart::Array const&, long, long, dart::Heap::Space)
0.15% dart perf-5465.map [.] *dart:core_StringBuffer__consumeBuffer@0x36924d72
0.14% dart [kernel.kallsyms] [k] clear_page_c
0.13% dart perf-5465.map [.] _stub_OneArgCheckInlineCache
0.12% dart perf-5465.map [.] *dart:core__StringBase@0x36924d72_substring
0.11% dart dart [.] dart::String::Copy(dart::String const&, long, unsigned short const*, long)
0.11% dart perf-5465.map [.] *dart:collection__HashMap@0x23c35ea0&&_LinkedHashMapMixin@0x23c35ea0__addEntry@0x23c35ea0
0.11% dart dart [.] dart::String::SubString(dart::String const&, long, long, dart::Heap::Space)
0.11% dart dart [.] dart::FreeList::SplitElementAfterAndEnqueue(dart::FreeListElement*, long, bool)
0.10% dart [kernel.kallsyms] [k] get_page_from_freelist
0.10% dart dart [.] 0x000000000031b333
0.10% dart dart [.] dart::Scavenger::ProcessToSpace(dart::ScavengerVisitor*)
0.09% dart dart [.] dart::RawArray::VisitArrayPointers(dart::RawArray*, dart::ObjectPointerVisitor*)
0.09% dart dart [.] dart::ClassTable::UpdateAllocatedOld(long, long)
0.08% dart dart [.] dart::Profiler::RecordSampleInterruptCallback(dart::InterruptedThreadState const&, void*)
0.08% dart dart [.] dart::BootstrapNatives::DN_String_concatRange(_Dart_NativeArguments*)
0.08% dart perf-5465.map [.] *dart:convert__JsonStringifier@0xda80e0a_stringifyJsonValue_<anonymous closure>
0.07% dart perf-5465.map [.] _stub_TwoArgsCheckInlineCache
0.07% dart dart [.] dart::BootstrapNatives::DN_Object_getHash(_Dart_NativeArguments*)
0.07% dart perf-5465.map [.] *dart:core__Smi@0x36924d72_toString
0.07% dart perf-5465.map [.] dart:core__OneByteString@0x36924d72_get_hashCode
0.07% dart dart [.] dart::Instance::IsInstance() const
0.06% dart dart [.] dart::BootstrapNatives::DN_StringBuffer_createStringFromUint16Array(_Dart_NativeArguments*)
0.06% dart perf-5465.map [.] *dart:collection_Maps_mapToString
0.06% dart dart [.] dart::VMHandles::~VMHandles()
0.06% dart dart [.] dart::GCMarker::MarkObjects(dart::Isolate*, dart::PageSpace*, bool, bool)
0.06% dart dart [.] dart::PageSpace::TryAllocate(long, dart::HeapPage::PageType, dart::PageSpace::GrowthPolicy)
0.06% dart [kernel.kallsyms] [k] free_hot_cold_page
0.06% dart perf-5465.map [.] dart:core__StringBase@0x36924d72__substringUncheckedNative@0x36924d72
0.06% dart dart [.] dart::LoadOptimizer::Optimize()
0.06% dart dart [.] dart::Heap::AllocateNew(long)
最佳答案
我只想总结一下关于dart在vm上的行为的发现。直接询问后,事实证明转换是一个严重的问题。
最新版本已经对此进行了改进,并且也应该包含在下一个稳定版本中。
请检查这个错误https://code.google.com/p/dart/issues/detail?id=17659以及来自drt google group https://groups.google.com/a/dartlang.org/forum/#!topic/misc/S0rGeyc9aQU的对话本身
非常感谢Gunter,Anders和Greg在这里帮助我。
关于dart - dart vm-提高读取json和http通信的性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22406610/
已关闭。这个问题是 off-topic 。目前不接受答案。 想要改进这个问题吗? Update the question所以它是on-topic用于堆栈溢出。 已关闭11 年前。 Improve th
我是 Azure 平台的初学者。我在公司的 Azure 基础架构中遇到了虚拟机问题,在我从操作系统重新启动后,该虚拟机无法启动,我尝试了所有其他故障排除功能,但仍遇到以下问题: 重新部署选项。 我想确
我在 Mac 上使用 XAMPP-VM,我尝试使用 xampp 管理器上显示的地址通过 ssh 连接到 VM: 192.168.65.2 我意识到我不知道 VM 的 root 密码和任何 ssh-ke
我知道你可以在 Dalvik 的 VM 中运行几乎所有的 Java,而你可以在 Java 的 VM 中运行,但是限制不是很清楚。有没有人遇到任何主要的绊脚石?有什么大图书馆有问题吗?任何编译成 Jav
Azure VM 备份失败,出现错误 - GuestAgentSnapshotTaskStatusErrorAzure 备份服务无法与 VM 代理通信以触发快照(以进行备份),因为 VM 代理可能处于
我想知道当虚拟机停止时,虚拟机的软件成本部分是否收费。我想运行 Azure SQL VM Enterprise。 VM 每月的软件成本为“1,116 美元/月”。 如果我停止使用,我仍需支付该软件的费
有 2 台安装了 Proxmox (Proxmox-ve 4.2) 的物理服务器,每台都处理几个虚拟机和容器。这些服务器(几乎)完全隔离,它们之间没有集群/共享存储/附加存储等。 已在 proxmox
我想知道当虚拟机停止时,虚拟机的软件成本部分是否收费。我想运行 Azure SQL VM Enterprise。 VM 每月的软件成本为“1,116 美元/月”。 如果我停止使用,我仍需支付该软件的费
有 2 台安装了 Proxmox (Proxmox-ve 4.2) 的物理服务器,每台都处理几个虚拟机和容器。这些服务器(几乎)完全隔离,它们之间没有集群/共享存储/附加存储等。 已在 proxmox
Parrot Virtual Machine 有什么好处?对于最终用户(软件开发人员)? 例如,如果我可以直接针对 Perl 或 Python 进行编程,我为什么还要在 Parrot 下为它们编程呢?
例如,Python 和 Java 有一个 VM,而 C 和 Haskell 没有。 (如果我错了,请纠正我) 想了想线路两边都有哪些语言,找不到原因。 Java 在很多方面都是静态的,而 Haskel
我知道虚拟机镜像有两种类型:通用型和专用型。 如果操作系统已通用化/取消配置,则必须关闭虚拟机才能将其捕获为 VM 镜像。一旦 VM 被捕获为 VM 镜像,该虚拟机将自动删除。 如果操作系统是专用,则
我知道虚拟机镜像有两种类型:通用型和专用型。 如果操作系统已通用化/取消配置,则必须关闭虚拟机才能将其捕获为 VM 镜像。一旦 VM 被捕获为 VM 镜像,该虚拟机将自动删除。 如果操作系统是专用,则
背景信息 我正在开发一种支持网络的嵌入式设备,旨在与服务器进行通信。因为此服务器将运行 Linux(但我需要 Windows 工具进行开发),我正在运行带有 Ubuntu Server 14.04 的
我有一个 Azure 云服务 mywebapp.cloudapp.net,它由两个 Azure VM - mywebappvm1 和 mywebappvm2 组成。两个虚拟机位于同一可用性集中并具有相
有什么方法可以在不重新启动虚拟机的情况下调整现有虚拟机的大小,还是总是像停止虚拟机然后重新启动一样? 据我了解,我可以更改虚拟机的大小而无需重新启动它。请指导我,因为我不希望虚拟机在调整大小时出现任何
我是 Azure 新手。我正在尝试使用 powershell 在 Azure 中创建资源。 我的要求是从虚拟机创建镜像。我遵循了以下方法: 流程 1:手动执行 通用化虚拟机:登录虚拟机 -> 打开命令
我创建了虚拟网络,并且想要将新虚拟机部署到该虚拟网络。网络 我尝试使用以下命令创建虚拟机: az vm create --resource-group myGroup --name VMTestNet
上下文 作为一个大学项目,我们希望更改 pharo 虚拟机以使用对象表,看看会发生什么。 我们使用pharo-vm clone from github和VMMaker。构建虚拟机工作正常。 首先,我们
我是巴拿马型的新手,刚刚安装,但收到以下错误消息: A different VM with name panamax-vm has been created already. 我试图通过使用 pana
我是一名优秀的程序员,十分优秀!