n****1 发帖数: 1136 | 1 现在连android的ART都开始ahead of time compile了. 可见JIT的却影响性能。
而C#基本只在windows+intel平台上自娱自乐,没有任何跨平台的需求,也就没必要做
just in time浪费资源了啊 |
x****u 发帖数: 44466 | 2 C#早就支持ARM了,如果微软愿意,移植到Linux难度也很小,但针对客户端的设计很不
好谁会去用?
【在 n****1 的大作中提到】 : 现在连android的ART都开始ahead of time compile了. 可见JIT的却影响性能。 : 而C#基本只在windows+intel平台上自娱自乐,没有任何跨平台的需求,也就没必要做 : just in time浪费资源了啊
|
L*****e 发帖数: 8347 | 3 C#只在windows上是政治需要,技术上支持Linux是分分钟的事情。。。而且是将来的必
然趋势。。。
★ 发自iPhone App: ChineseWeb 8.2.2
【在 n****1 的大作中提到】 : 现在连android的ART都开始ahead of time compile了. 可见JIT的却影响性能。 : 而C#基本只在windows+intel平台上自娱自乐,没有任何跨平台的需求,也就没必要做 : just in time浪费资源了啊
|
x****u 发帖数: 44466 | 4 Linux不是个好的平台,MS应该更愿意把NT开源。
【在 L*****e 的大作中提到】 : C#只在windows上是政治需要,技术上支持Linux是分分钟的事情。。。而且是将来的必 : 然趋势。。。 : : ★ 发自iPhone App: ChineseWeb 8.2.2
|
n*w 发帖数: 3393 | 5 .net native好像编译成机器码? xiamian是不是早这样了? |
x****u 发帖数: 44466 | 6 最大的特性不是编译成机器码,这个JIT 10年前就搞定了,而是提取Framework搞静态
链接。静态链接是非常疯狂且愚蠢的想法。
【在 n*w 的大作中提到】 : .net native好像编译成机器码? xiamian是不是早这样了?
|
g*****n 发帖数: 420 | 7 Android 的NDK就是静态链接的
IOS的app也都是静态链接的
手机应用size大点,也大不到哪去,几十M到头,比手机游戏小多了,那个动辄上G.
静态链接除了速度快,还有一个好处是防止代码反编译,Android的apk简直跟不设防以同
样.
【在 x****u 的大作中提到】 : 最大的特性不是编译成机器码,这个JIT 10年前就搞定了,而是提取Framework搞静态 : 链接。静态链接是非常疯狂且愚蠢的想法。
|
d***a 发帖数: 13752 | 8 嗯?少量的静态链接和全局优化,这不是很正常的编译优化吗。
【在 x****u 的大作中提到】 : 最大的特性不是编译成机器码,这个JIT 10年前就搞定了,而是提取Framework搞静态 : 链接。静态链接是非常疯狂且愚蠢的想法。
|
x****u 发帖数: 44466 | 9 .Net Framewaor还算少量?
【在 d***a 的大作中提到】 : 嗯?少量的静态链接和全局优化,这不是很正常的编译优化吗。
|
n****1 发帖数: 1136 | 10 动态链接太不安全了,一个LD_PRELOAD或者chroot就能随便覆盖库文件,无论是从安全
角度还是闭源产权角度都是后患无穷。
你要不信我的,看看Rob Pike大牛的说明:
http://harmful.cat-v.org/software/dynamic-linking/
【在 x****u 的大作中提到】 : .Net Framewaor还算少量?
|
|
|
d***a 发帖数: 13752 | 11 linker不是这么工作的。它不会是把整个库都链接进去。
你要是不了解,别操心太多。
【在 x****u 的大作中提到】 : .Net Framewaor还算少量?
|
x****u 发帖数: 44466 | 12 你自己root了就不要赖动态库。
【在 n****1 的大作中提到】 : 动态链接太不安全了,一个LD_PRELOAD或者chroot就能随便覆盖库文件,无论是从安全 : 角度还是闭源产权角度都是后患无穷。 : 你要不信我的,看看Rob Pike大牛的说明: : http://harmful.cat-v.org/software/dynamic-linking/
|
x****u 发帖数: 44466 | 13 你做几个程序就知道得链多大了。
【在 d***a 的大作中提到】 : linker不是这么工作的。它不会是把整个库都链接进去。 : 你要是不了解,别操心太多。
|
d***a 发帖数: 13752 | 14 不大。
【在 x****u 的大作中提到】 : 你做几个程序就知道得链多大了。
|
x****u 发帖数: 44466 | 15 你搞得东西太小。。。
【在 d***a 的大作中提到】 : 不大。
|
k**********g 发帖数: 989 | 16
用C++/STL用久了,完全不察觉用其他语言 1MB 左右的编译代码够逆天有馀。
史上的大牛们用 code bloat 来形容 C++/STL 不是没有道理的。
【在 x****u 的大作中提到】 : 你做几个程序就知道得链多大了。
|
d***a 发帖数: 13752 | 17 凭空想象。
【在 x****u 的大作中提到】 : 你搞得东西太小。。。
|
x****u 发帖数: 44466 | 18 静态链接随便几个复杂协议的解析库,轻松就是10M级别的。
【在 d***a 的大作中提到】 : 凭空想象。
|
g*****n 发帖数: 420 | 19 游戏随便都是几百兆,上G的.我的app 23M,手机下载只要1分多钟.完全没压力.台式机更
不用说了,存储都是几百G,上T的.
静态链接的好处远远大于带来的开销. |
x****u 发帖数: 44466 | 20 你以为游戏几百兆都是可执行机器码么?
【在 g*****n 的大作中提到】 : 游戏随便都是几百兆,上G的.我的app 23M,手机下载只要1分多钟.完全没压力.台式机更 : 不用说了,存储都是几百G,上T的. : 静态链接的好处远远大于带来的开销.
|
|
|
g*****n 发帖数: 420 | 21 即便运行开销,每个app4,50M完全没有压力,你用Xcode debug运行app的时候可以看到内
存占用,IPhone5上跑非常流畅.
这还是手机,要是平板更没问题了,4G的内存
【在 x****u 的大作中提到】 : 你以为游戏几百兆都是可执行机器码么?
|
x****u 发帖数: 44466 | 22 你知道这内存里面有多少东西是共享的么?
iTunes为什么在Windows下那么慢,就是所有动态库没人和它共享。
【在 g*****n 的大作中提到】 : 即便运行开销,每个app4,50M完全没有压力,你用Xcode debug运行app的时候可以看到内 : 存占用,IPhone5上跑非常流畅. : 这还是手机,要是平板更没问题了,4G的内存
|
g*****n 发帖数: 420 | 23
静态链接只是link static的.a文件又不是链接动态共享库dylib,你搞错了吧?静态链接
的只是Net Framework的class.你确定你明白你说的东西吗?
Xcode静态链接的时候也不会去把dylib打包进app,Android NDK也不会的吧libz.dylib
打包进去的,只有staic lib的.a文件才会被link的.dylib仍然是共享的被调用的.
你看过反编译的DotNet Framework代码就清楚,DotNetframework也只是通过PInvoke去
调用共享dll的api实现平台api调用,不会把dll也打包的.
Java的runtime也是一样的通过jni去调用C的各种dylib库而已
【在 x****u 的大作中提到】 : 你知道这内存里面有多少东西是共享的么? : iTunes为什么在Windows下那么慢,就是所有动态库没人和它共享。
|
x****u 发帖数: 44466 | 24 微软自己说的静态连接后不需要.net framework了,你不看官方声明就扯?
dylib
【在 g*****n 的大作中提到】 : : 静态链接只是link static的.a文件又不是链接动态共享库dylib,你搞错了吧?静态链接 : 的只是Net Framework的class.你确定你明白你说的东西吗? : Xcode静态链接的时候也不会去把dylib打包进app,Android NDK也不会的吧libz.dylib : 打包进去的,只有staic lib的.a文件才会被link的.dylib仍然是共享的被调用的. : 你看过反编译的DotNet Framework代码就清楚,DotNetframework也只是通过PInvoke去 : 调用共享dll的api实现平台api调用,不会把dll也打包的. : Java的runtime也是一样的通过jni去调用C的各种dylib库而已
|
g*****n 发帖数: 420 | 25
.NetFramework 有很多你没有用的class,在编译的时候如果app没有用到,当然不会被编
译进去了,这是smart link,多少年前的技术了.全部link进去,那不叫feature,那叫
overlink bug.
【在 x****u 的大作中提到】 : 微软自己说的静态连接后不需要.net framework了,你不看官方声明就扯? : : dylib
|
x****u 发帖数: 44466 | 26 土人,对于Java和.Net这种动态语言,完全去除framework的无用代码是外星科技。
另外退一步说,单讲某些基本操作也是需要巨大的支持库的,比如H文件,协议,各种
引擎。
【在 g*****n 的大作中提到】 : : .NetFramework 有很多你没有用的class,在编译的时候如果app没有用到,当然不会被编 : 译进去了,这是smart link,多少年前的技术了.全部link进去,那不叫feature,那叫 : overlink bug.
|
g*****n 发帖数: 420 | 27
这个不算外星科技吧,编译器多少年都是这么干的,只是你不知道而已.
【在 x****u 的大作中提到】 : 土人,对于Java和.Net这种动态语言,完全去除framework的无用代码是外星科技。 : 另外退一步说,单讲某些基本操作也是需要巨大的支持库的,比如H文件,协议,各种 : 引擎。
|
x****u 发帖数: 44466 | 28 动态语言特性的最大特点是编译时不可能完全预测到什么代码可能用到。你是C用多了
才觉得这事情简单。
【在 g*****n 的大作中提到】 : : 这个不算外星科技吧,编译器多少年都是这么干的,只是你不知道而已.
|
g*****n 发帖数: 420 | 29 我已经没法和你交流了,java和C#怎么成了动态语言了?
【在 x****u 的大作中提到】 : 动态语言特性的最大特点是编译时不可能完全预测到什么代码可能用到。你是C用多了 : 才觉得这事情简单。
|
x****u 发帖数: 44466 | 30 一直就有很多动态特性,现在的版本更是完全动态化了。
【在 g*****n 的大作中提到】 : 我已经没法和你交流了,java和C#怎么成了动态语言了?
|
|
|
d***a 发帖数: 13752 | 31 .net team的实测,内存少用了大约15%。
【在 x****u 的大作中提到】 : 静态链接随便几个复杂协议的解析库,轻松就是10M级别的。
|
g*****g 发帖数: 34805 | 32 做不到,最简单的就是reflection, 类名是个字符串,runtime的时候才知道需要这个
。最多可以把已知的弄进去,jdk还是得有。
【在 g*****n 的大作中提到】 : 我已经没法和你交流了,java和C#怎么成了动态语言了?
|
n****1 发帖数: 1136 | 33 reflection也要import,只要被import的类就静态编译。不就行了
Objective-C的反射支持比java强多了, 还是能静态链接.
就算是java, production machine上也只有JRE,没有JDK,照样能跑程序,我不懂你说
要"jdk还是得有"指的是啥
【在 g*****g 的大作中提到】 : 做不到,最简单的就是reflection, 类名是个字符串,runtime的时候才知道需要这个 : 。最多可以把已知的弄进去,jdk还是得有。
|
x****u 发帖数: 44466 | 34 python也能静态编译,问题是体积上完全不合算。
【在 n****1 的大作中提到】 : reflection也要import,只要被import的类就静态编译。不就行了 : Objective-C的反射支持比java强多了, 还是能静态链接. : 就算是java, production machine上也只有JRE,没有JDK,照样能跑程序,我不懂你说 : 要"jdk还是得有"指的是啥
|
c*********e 发帖数: 16335 | 35 現在好多php的網站,就是为了利用linux平台。
很多小公司,其实只要用php + zend framework就好了,做一个網站,一个人,一个月
就能做出来。全免费,公司喜欢,码工也喜欢。
【在 x****u 的大作中提到】 : Linux不是个好的平台,MS应该更愿意把NT开源。
|
x****u 发帖数: 44466 | 36 然后一周后就是肉鸡,或者你可以用10倍工资雇一个熟练工搞。。。
【在 c*********e 的大作中提到】 : 現在好多php的網站,就是为了利用linux平台。 : 很多小公司,其实只要用php + zend framework就好了,做一个網站,一个人,一个月 : 就能做出来。全免费,公司喜欢,码工也喜欢。
|
c*********e 发帖数: 16335 | 37 其实,php + zend framework,現在还是很流行的,小公司比大公司多了去了。
【在 x****u 的大作中提到】 : 然后一周后就是肉鸡,或者你可以用10倍工资雇一个熟练工搞。。。
|
x****u 发帖数: 44466 | 38 都是技术型startup,牛人不计报酬的。
【在 c*********e 的大作中提到】 : 其实,php + zend framework,現在还是很流行的,小公司比大公司多了去了。
|
c*********e 发帖数: 16335 | 39 sigh,怎么跟你说呢。現在社會上很多搞service的公司。你觉得哪些算是service呢?
为啥ibm抛弃了laptop产业,一股脑地投入了service的怀抱呢?
【在 x****u 的大作中提到】 : 都是技术型startup,牛人不计报酬的。
|
g*****g 发帖数: 34805 | 40 谁跟你说reflection要Import?不懂不要扯蛋行不?JRE, JDK这个我是随手写错了,
如果还要JRE,叫啥静态编译。
【在 n****1 的大作中提到】 : reflection也要import,只要被import的类就静态编译。不就行了 : Objective-C的反射支持比java强多了, 还是能静态链接. : 就算是java, production machine上也只有JRE,没有JDK,照样能跑程序,我不懂你说 : 要"jdk还是得有"指的是啥
|
|
|
n****1 发帖数: 1136 | 41 我说的是实现静态链接的策略, 强制import, 或者其他方式做申明. 否则直接抛个异常
. 我没说这个是目前Hotspot/Openjdk的做法.
Android 4.4的ART就是这么做, 已达到ahead of time compile的目的, 虽然有些app会
无法运行, 可是总体上是利大于弊的.
【在 g*****g 的大作中提到】 : 谁跟你说reflection要Import?不懂不要扯蛋行不?JRE, JDK这个我是随手写错了, : 如果还要JRE,叫啥静态编译。
|
x****u 发帖数: 44466 | 42 IBM那个报价哪个小公司用得起?
【在 c*********e 的大作中提到】 : sigh,怎么跟你说呢。現在社會上很多搞service的公司。你觉得哪些算是service呢? : 为啥ibm抛弃了laptop产业,一股脑地投入了service的怀抱呢?
|
x****u 发帖数: 44466 | 43 ART是基于Framework的,和MS三哥这次玩的两回事。
【在 n****1 的大作中提到】 : 我说的是实现静态链接的策略, 强制import, 或者其他方式做申明. 否则直接抛个异常 : . 我没说这个是目前Hotspot/Openjdk的做法. : Android 4.4的ART就是这么做, 已达到ahead of time compile的目的, 虽然有些app会 : 无法运行, 可是总体上是利大于弊的.
|
N********n 发帖数: 8363 | 44
Huh? .Net has had AOT since version 3.5. Not only .Net but also MONO
has had it for while. I remember back in 2009 MONO folks were already
talking about porting AOT from .Net to MONO.
AOT is a helpful minor trick but not that big a deal.
【在 n****1 的大作中提到】 : 现在连android的ART都开始ahead of time compile了. 可见JIT的却影响性能。 : 而C#基本只在windows+intel平台上自娱自乐,没有任何跨平台的需求,也就没必要做 : just in time浪费资源了啊
|