V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  sagnitude  ›  全部回复第 4 页 / 共 5 页
回复总数  88
1  2  3  4  5  
2016-03-07 19:18:54 +08:00
回复了 anonymoustian 创建的主题 Java Intellij IDEA 14 使用 maven 打包时如何选择主类?
运行 jar 包要加"-jar"参数: java -jar mvnstudy-1.0-SNAPSHOT.jar
2016-03-07 19:16:37 +08:00
回复了 codespots 创建的主题 JavaScript JavaScript 算法初探——数组去重
for-in 很慢,数量级级别的慢(除了 IE ),不要用 for-in
2016-03-05 20:20:17 +08:00
回复了 tanteng 创建的主题 Redis Redis 性能评估及一台 Redis 承受不住并发量怎么办?
@sagnitude 修正一下,我目前在跑的 redis 集群服务器,测出来的是每核心 50K 左右(没跑满 CPU), 100K 是理论极限,估计不能达到, 85K 是估算的极限。我们认为继续优化意义不大,不如买服务器,就没继续研究了…
2016-03-05 20:08:45 +08:00
回复了 tanteng 创建的主题 Redis Redis 性能评估及一台 Redis 承受不住并发量怎么办?
有很大的需求的话,可以用集群,或者代理层

1. 对集群来说,一般来说普通的服务器都是 50K~100K 级别 GET 操作并发(每个核心)这个水平,根据具体的部署方法和配套工具,会有浮动
对本机的普通 Redis (非集群)来说, GET 操作在 70K~120K 级别

评估方法: Redis 官方提供了 C 的库;官方的 redis-benchmark 工具用的就是 C 的库, redis-benchmark 的结果大致可以当成 使用 C 语言开发可以获得的性能。

复杂的操作,一个复杂操作,你可以大致认为是若干个 GET 操作的级别,你用 redis-benchmark 跑一下,大概按比例估算一下就行了。

如果你用的是其他的语言,用官网推荐的 client library 写一个简单的 sample 跑一下,把 redis 服务器的 info 打出来。
redis-cli info 里面有已处理命令的统计。
就我的使用来说, Java 的 Jedis 连接 Redis 的性能(并发量)在 C 的 70%这个水平

2. 一个实例扛不住,就用集群,我目前在用官方的 redis-cluster ,目前平均下来每个核心可以提供 85K 的并发,极限在每核心 100K 左右(单位是一次 C 语言 GET)

3. redis 的话,是单线程的,你的同时操作总会有一个先后顺序,所以没有问题

如果是 redis-cluster ,它只提供最终一致性,也就是说你在 A 服务器上 SET ,你立刻在 B 服务器上 GET 有可能拿不到这个值,但是它保证最后你的 GET 和 SET 请求会和普通的 redis 一样,按照时间顺序被处理,最后的结果和使用单实例 Redis 一样
2016-02-18 19:47:18 +08:00
回复了 TJT 创建的主题 Android 检查你的手机号是否会被浏览器通过 headers 发送
这种过时的技术…你是不是碰到伪基站了……
2016-02-18 19:36:54 +08:00
回复了 TJT 创建的主题 Android 检查你的手机号是否会被浏览器通过 headers 发送
@TJT 应该就是 wap gateway 干的

https://www.wikiwand.com/en/WAP_gateway

比如这个 gateway 的介绍文档介绍了它能做到这一点:
http://www.juniper.net/techpubs/en_US/junos-mobility11.4/topics/concept/httphe-mobility-overview.html

还有个类似的 gateway 介绍:
http://www.nowsms.com/nowwap-and-http-header-enrichment

有个 stackoverflow 的回答可以参考:
http://stackoverflow.com/questions/8428422/detect-an-msisdn-mobile-number-with-the-browser/11152022#11152022

这篇文章列出了一些 Gateway 加的 http header ,其中提到 OpenWave 就会添加这个域:
https://mobiforge.com/design-development/useful-x-headers

这里有张图,也可以看一下
https://docs.oracle.com/cd/E19097-01/sjs.cds51/820-1941-10/wapgateway.html
2016-02-18 19:02:19 +08:00
回复了 TJT 创建的主题 Android 检查你的手机号是否会被浏览器通过 headers 发送
凑热闹来一个
#include <stdlib.h>

int main() {
system("cat text.txt | grep -Po 'answer=\"\\K[^\"]*'");
return 0;
}
2016-01-26 10:40:05 +08:00
回复了 1998qiu 创建的主题 问与答 读计算机专业,考一所好大学真的很重要吗?
高考成绩好的,能力不一定强;但是能力强的,高考成绩一般不会差。
还有,和聪明的人交流很舒服,显然学校越好越容易遇到聪明人。
2016-01-23 11:47:01 +08:00
回复了 eniac0001 创建的主题 JavaScript JavaScript 中使用 Call 或 Apply 扩展的好处是什么?
为了写起来方便,自由度更大。比如 func.apply(null, arguments),改变 this ,使用 arguments ,还有 Array.prototype.slice.call(arguments),强行调用其他对象的方法,

另外的区别就是 apply 比 call 慢, call 比直接调用慢, bind 方法比这些都慢
另外, string 的 reverse 方法,用 for 循环比这两个都快
另外, join 方法不带参数默认使用逗号作为分隔符
2016-01-12 17:00:33 +08:00
回复了 dofy 创建的主题 微信 微信集成 App 这一步太恐怖了。
没有跨平台?你试过写微信内 webgl 内容么?
我就为了安卓版微信写了个 2D 版……用 CSS 动画在 Z3 上的性能和 iPod Touch 上的 3D 版有的一拼!

还有微信内打开页面,光是打开页面就总是需要两三秒,快的也要一两秒,就光盯着那白屏了
我用 Z3 看简单的 jQuery 动画都卡成幻灯片,就这性能还玩什么 HTML5 …… 3D ,音视频什么都别想了

不过在微信里做点表单、工作流、简单页面这种还不错
2015-12-26 11:57:29 +08:00
回复了 rogwan 创建的主题 Python 为什么有“空格”隔断的字符串, split 切分后取不到值?
把你这句话里面调用任何一个函数的结果,都 print 出来,自己看看
另外, whitespace character 和空格是不一样的
这种问题还请自己搜索,别人回答了和自己找到答案是不一样的,自己找到的答案记得更牢
2015-12-22 12:58:36 +08:00
回复了 crytis 创建的主题 Java 用 java 写桌面程序 ui 只能用 swing 或者 swt 么?
CEF, JCEF

https://bitbucket.org/chromiumembedded/java-cef/
https://bitbucket.org/chromiumembedded/cef/
https://cefbuilds.com/

我司内部工具就在用,用起来不难
JavaFX , DJNativeSwing , browserlauncher 这些旧项目都不太行,以 java 为主去操纵浏览器是不行的,浏览器端发展太快,这些库的更新跟不上 web 的发展,支持浏览器也不够多,不够好
而且 DJNativeSwing 在 mac 上会有致命冲突
2015-12-13 15:58:55 +08:00
回复了 itauge 创建的主题 PHP 提高写代码速度一问?
引号?括号?
phpstorm, sublime, atom 之类都能输入一个引号自动在光标后面加上另一个引号吧
大小中括号也基本都支持的,你用的是什么编辑器居然做不到?
2015-12-11 20:40:35 +08:00
回复了 langzizx39 创建的主题 程序员 发现公司项目里有个类的名字拼错了,要改吗?
要慎重,我们在 model 里改动变量名字或者增删一个变量有时候会需要提前一周通知,相关开发人员一起动手改,新功能暂停开发,所有项目同时更改同时上线。
除非你的所有项目都有完备的自动化测试和构建体系,否则一定要慎重。

服务端改动一个 model 的变量名, iOS , javascript , Android , Java 桌面端,所有的项目都要改,
尤其是前端! javascript 这种语言,服务端改动 model 之后,前端页面里不跑到特定的代码那里根本不知道会出错

我们有很多小项目,半年或者一两年没维护,基本都是跑不了的,因为其他的公共代码修改了,哪怕只是修改了一两个域,也很难查。基本要用的时候都需要安排人修复
2015-12-11 09:30:36 +08:00
回复了 UtopiaCHN 创建的主题 iDev 为什么子线程无法立刻停止 UIActivityIndicatorView 动画
dispatch_get_global_queue 改成 dispatch_get_main_queue()

另外,应该用 NSTimer ,而不是 Thread.sleep
也可以用 performSelector 设定延时
2015-11-20 13:03:27 +08:00
回复了 kaiwei 创建的主题 JavaScript 新手提问: js 如何处理这种情况
补充一下,我觉得保险的话,在发新的请求的时候楼上提到的这些都是要做的:

1. 尚未发送的请求,取消发送(在发送方法里检查 timestamp )
2. 已经发送正在等待返回的, abort
3. 对于请求已经结束,正在处理数据的,用唯一的标识符,在数据处理完的时候拒绝过时的请求的数据
4. 加 loading 屏幕

如果只用其中一种或者若干种,还是有风险的,

因为有时候请求数据的处理是很重的,我经常请求一个数兆的 JSON 文件,然后画到 webgl canvas 里,这时候 JSON 处理根本无法取消,三角化和 geometry 生成也很难取消,只能做多重保险。

再补充一下,在 javascript 里,序列号也可以不用加在请求里,也不用服务器返回。由于 js 的回调机制,回调结束之前,那个函数的 scope 仍然是有效的,可以用局部变量和全局变量来做。

我写了一个简单的例子: https://gist.github.com/sagnitude/b0642604fd1911e016b4

核心的代码是这样:

function sendRequest() {
var timestamp = (new Date()).getTime();

window.lastRequestTimeStamp = timestamp;

Request.Dispatch(params, function(result) {
if (timestamp == window.lastRequestTimeStamp) {
//do something
console.log("success! " + timestamp);
}
});
}
2015-11-02 19:02:14 +08:00
回复了 Jackhuang 创建的主题 Python 学得太杂了,感觉迷茫(吐槽)以及求问怎么写 Python 项目
大学课程的那些语言都只能是入个门、做个题,根本都算不上“学的太杂”吧。。我大学学了四年 java ,还是出来工作才真正熟悉写 java 程序的过程,打基础的时候建议你还是继续刷代码量吧,等你有好想法的时候,有代码量的基础在,能够很快很好地实现出来,我是感觉自己写的远远不够
2015-11-02 18:51:01 +08:00
回复了 Jackhuang 创建的主题 Python 学得太杂了,感觉迷茫(吐槽)以及求问怎么写 Python 项目
python 不是有个 PEP8 么

我用 pycharm 写的时候,只要照着 IDE 的代码提示改,代码风格就还行,我在 Inspection 里打开了 PEP8 检查
1  2  3  4  5  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1190 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 35ms · UTC 18:21 · PVG 02:21 · LAX 10:21 · JFK 13:21
Developed with CodeLauncher
♥ Do have faith in what you're doing.