V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  xiangyuecn  ›  全部回复第 106 页 / 共 112 页
回复总数  2237
1 ... 98  99  100  101  102  103  104  105  106  107 ... 112  
2018-09-19 17:04:06 +08:00
回复了 xiangyuecn 创建的主题 程序员 ios 12 支不支持录音了?
@whileFalse #15 没能一样看出这两张图分别代表什么浏览器,不过看到 getUserMedia 都是 false,这两个浏览器上《凉凉》


@qinxi 看楼上有些可以,好奇怪的系统特性,ios 版 IE
2018-09-19 13:11:23 +08:00
回复了 xiangyuecn 创建的主题 程序员 ios 12 支不支持录音了?
@whileFalse 能不能截下 Chrome 和 Firefox 的截图看看,感觉 Chrome 这个全能选手不应该不支持啊
2018-09-19 11:59:34 +08:00
回复了 xiangyuecn 创建的主题 程序员 ios 12 支不支持录音了?
@wangmn #7 试了一下蛮不错。不过反正轮子已经重复造了一遍,只录音用自己的代码小些,uglify+gzip 后 56k 大小


@xell 嗯嗯,看到 ios12 支持 getUserMedia 差不多就是支持了
2018-09-19 10:39:40 +08:00
回复了 xiangyuecn 创建的主题 程序员 ios 12 支不支持录音了?
@liuhaotian 能不能再测一下截下图,刚刚调整了对 webkitAudioContext 的支持,(测试页面如果没有显示 Recorder Last Modified 2018-09-19 10:27,可能需要刷新几下,有缓存)

http://wx3.sinaimg.cn/large/a32300cdgy1fvenerc71hj20b10433yb.jpg
2018-09-19 10:12:23 +08:00
回复了 xiangyuecn 创建的主题 程序员 ios 12 支不支持录音了?
@gchxp 能不能截个图瞄一下,我没有苹果手机测试
2018-09-19 10:09:22 +08:00
回复了 xiangyuecn 创建的主题 程序员 ios 12 支不支持录音了?
@Servo 不用慌,这个需求不是根据手机壳换主题
2018-09-17 18:01:57 +08:00
回复了 nilrust 创建的主题 程序员 2000 年前国内有哪些知名的开源项目?
2000 年前是西汉平帝元始元年,过些年就是三国了,前几天还看着老版的三国演义,哈哈

公元 2000 年有 异常 著名 的 之一 国内也有份 的 Y2K,之前如果有开源项目,估计也会带点这个高级货。

还在用 int 类型存储秒单位时间的,怕不怕 new Date(Math.pow(2,4*8-1)*1000-1).toLocaleString(),精度这么差为啥不用毫秒来计时,一次编写到处运行,简单不坑
2018-09-16 13:01:29 +08:00
回复了 dopdopdop 创建的主题 职场话题 感觉喜欢上了女同事怎么办?
各位大佬牛皮的断句,反正是要上的,参考#91 深情的图文并茂。。哈。。。
2018-09-15 20:48:36 +08:00
回复了 Tumblr 创建的主题 全球工单系统 @Livid 来领工单喽~~
不能直视用 table 和 flex 来布局这种,不是空格换成 margin 就解决了吗(滑稽
分母+1
永远的分母
2018-09-13 12:05:10 +08:00
回复了 abcbuzhiming 创建的主题 程序员 生成内容型的下载接口如何给前端友好提示?
@abcbuzhiming 那就用 ajax 啊,把数据先 load 下来,然后给一个按钮,让用户点击保存。blob+a 标签 download

或者下载完得到 blob 对象后,自动弹保存示例代码:

var url=URL.createObjectURL(
new Blob(["abcd"],{"type":"text/plain"})
);
var downA=document.createElement("A");
downA.innerHTML="不让点";
downA.href=url;
downA.download="data.txt";
document.body.appendChild(downA);
downA.click();
2018-09-13 10:28:52 +08:00
回复了 d754903977 创建的主题 全球工单系统 百度的老哥,换个手机号真的要这么麻烦嘛……
歪楼吐槽一下各种套路套餐:移动联通电信自家业务真是无法理喻,按目前的眼光。

有了 5 元米粉卡,19 元大王卡,一天流量 1 块钱撑死。10010 营销客服还老打电话卖 10G 流量,要改 4、50 的套餐,不是吃屎了么。

还是电信米粉卡好点,大王卡相对就渣了不少。

3 巨头自家业务还卖个锤子,套餐也不让改便宜的,逼人销号去隔壁家。
2018-09-13 10:20:49 +08:00
回复了 abcbuzhiming 创建的主题 程序员 生成内容型的下载接口如何给前端友好提示?
@westoy iframe 大法+1,普通的表单上传、普通的连接下载,target 到 iframe 中执行,和 xhr 异曲同工
2018-09-13 10:01:15 +08:00
回复了 xiangyuecn 创建的主题 程序员 C#中的废物 WebRequest
@xeaglex 测试了一下调大了最小线程数,新开的线程立马就飚了起来。

刚刚,细细思考一下 ThreadPool 这种延迟开新线程的行为存在的意义,发现一个事实:纯粹是微软某个程序员意淫出来的结果。

[1]

一般常见的池类配置存在两个控制参数:MaxActive 最大活跃数、MaxIdle 最大空闲数;你需要连接立即给你,只要不超过最大连接数,并且池内保留已开启的。

.net ThreadPool:只有 MaxThread 最大活跃数;你需要线程?看你设置了 MinThreads 没有,已开线程数量超过 MinThreads ?不好意思,新血液小水管慢慢流,等着业务超时吧。


[2]

ThreadPool 这个延迟功能初衷本来是好的,可以防止程序因为突然不好的原因( bug 或者其他非预期因素)打开大量线程产生的问题 [非业务需求] 。但如果程序确实需要大量线程来处理,不管你怎么延迟,最终还是会开到满足需要的线程数量 [业务实际需求] ;此时 ThreadPool.SetMinThreads 入场。

但是因为程序功能需要,往往需要调用 ThreadPool.SetMinThreads 调大可快速开启的线程数量,由于 ThreadPool.SetMinThreads 算是一个竞争资源(下面 [3] 解释)。最终的设定会趋向于 ThreadPool.SetMinThreads==ThreadPool.SetMaxThreads,并且趋向于全局只初始化设定一次(如程序启动时)。

最终结果就是 ThreadPool.SetMinThreads 失去存在的意义,ThreadPool 延迟开新线程没有任何价值。


[3]

ThreadPool.SetMinThreads 存在竞争因素,不敢随意调用,最终结果趋向于在程序初始化时设定 ThreadPool.SetMinThreads==ThreadPool.SetMaxThreads。

注意:MinThreads 数量并非会保留的空闲( Idle )线程数量,是要新开线程时如果已开启线程数量没有超过 MinThreads 就会立即开启,否则等着吧。新开的线程超过时间没用会自动关闭,具体保留多少个空闲( Idle )线程,没有设置方法。

默认:SetMinThreads 10
事物 A:事物开始时 SetMinThreads 200 (实际需要 100-300 个线程),事物结束还原成 10
事物 B:事物开始时 SetMinThreads 50 (实际需要 50-80 个线程),事物结束还原成 10

竞争情况:AB 都在运行(无需管谁先开始的),A 需要 30 分钟,B 需要 5 分钟,不管谁先结束,MinThreads 都会变成比另外事物开始时设定值小,都 [有可能] 对另外一个事物产生影响。

解决办法:那就不在事物开始时设定,改成每次从线程池中拿线程时设定 MinThreads,问题解决!

然后演变变成了:

MinThreads=谁大谁说了算;

整个程序 MinThreads≈会最大设定那个值。

整个程序 MinThreads≈MaxThreads。


[结论]

当有相对多点的线程需求时,ThreadPool 这种延迟开新线程的行为没有意义。ThreadPool.SetMinThreads 废物,不如换成 SetMaxIdleThreads。

new Thread(run).Start()没这种问题,但线程启动耗时太长(到无法接受的程度)。ThreadPool.QueueUserWorkItem(run)和 Task.Run(run)共享 ThreadPool。

实现线程池比实现 HttpClient 简单 99 倍,是时候自己实现一个.net 的线程池了(大哭

-----

洋洋洒洒又写作文,测试+码字耗时 1 小时,学习就是这样的 @karllynn #70
2018-09-12 20:50:30 +08:00
回复了 xiangyuecn 创建的主题 程序员 C#中的废物 WebRequest
@rwecho @paranoiagu @xeaglex 从发起到完成一个请求,.net 背后套入太多。


顺带发现一个好玩的:

昨天开 50 个线程(Task 实现的)去请求数据,请求数据中用到了 GetResponseAsync,会发现开始时速度极慢,而且会产生超时请求,2 分钟后请求速度达到最高速率并且稳定,最后发现是线程池的锅。

.net 4.5 中线程池中最小线程数饱和后,会新开新线程。但不是需要多少立即开多少,基本上 1 秒开一个新线程,启动异常缓慢。导致突然增加的 50 个线程只有少量在工作,其他排队。进而导致 GetResponseAsync 没有线程来处理,导致超时。

https://bbs.csdn.net/topics/390454205?page=1。

感觉用.net 来做定时采集任务是要废了,请求不好用,线程池还不能进行突发操作,略略略。。。
2018-09-12 10:13:43 +08:00
回复了 tangler 创建的主题 程序员 心如一滩死水,激不起半点涟漪
检查结果:缺乏目标,没有进取心,没有自律的表现,根源:懒
2018-09-11 12:03:21 +08:00
回复了 xiangyuecn 创建的主题 程序员 C#中的废物 WebRequest
@oyjc @hibobby 想要的功能实现不了,新手吐槽一下而已,别这么认真
2018-09-11 12:00:04 +08:00
回复了 xiangyuecn 创建的主题 程序员 C#中的废物 WebRequest
#66 还有 #29 我站着不动,你们去拿刀。

要用 socket 实现 httpclient,不否认可以实现,里面的工作量有多大,写出来比框架自带的是好还是坏,我就不知道了。老是诱导我们这群小白去磨一些很基础但很重要,深入发现里面异常庞大的东西。
1 ... 98  99  100  101  102  103  104  105  106  107 ... 112  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1130 人在线   最高记录 6543   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 37ms · UTC 22:48 · PVG 06:48 · LAX 15:48 · JFK 18:48
Developed with CodeLauncher
♥ Do have faith in what you're doing.