小编Rya*_*Val的帖子

在Chrome中查找JavaScript函数定义

Chrome的开发者工具摇滚,但他们似乎没有(我能找到的)一种方法是找到JavaScript函数的定义.这对我来说非常方便,因为我正在开发一个包含许多外部JS文件的站点.当然grep解决了这个问题,但在浏览器中会好得多.我的意思是,浏览器必须知道这一点,为什么不公开呢?我的期望是这样的:

  • 从页面中选择"检查元素",突出显示"元素"选项卡中的行
  • 右键单击该行并选择"转到功能定义"
  • 正确的脚本在"脚本"选项卡中加载,并跳转到函数定义

首先,这个功能是否存在,我只是错过了它?

如果没有,我猜这将来自WebKit,但找不到任何针对Developer Tool功能请求WebKit的Bugzilla.

javascript google-chrome-devtools

267
推荐指数
8
解决办法
14万
查看次数

检测录音中的静音

JavaiOS也有类似的问题,但我想知道如何通过getUserMedia(). 所以给出:

navigator.mediaDevices.getUserMedia({ audio: true })
  .then(stream => {
    const mediaRecorder = new MediaRecorder(stream);
    mediaRecorder.start();

    const audioChunks = [];
    mediaRecorder.addEventListener("dataavailable", event => {
      audioChunks.push(event.data);
    });

    mediaRecorder.addEventListener("stop", () => {
      const audioBlob = new Blob(audioChunks);
      const audioUrl = URL.createObjectURL(audioBlob);
      const audio = new Audio(audioUrl);
      audio.play();
    });
  });
Run Code Online (Sandbox Code Playgroud)

我想知道如果没有音频,是否可以检查BlobURLAudio对象上的任何内容。如果麦克风不好或选择了虚拟设备 - 任何类似的事情。我之前检查了 blob 的大小,但无声音频仍然有文件大小。我可以通过在后端执行此操作,但希望纯 JS 有一种方法可以简化。stopffmpeg

javascript audio

2
推荐指数
1
解决办法
5816
查看次数

在BigQuery中运行异步查询的速度并不明显

我在App Engine上使用Google的python API客户端库在Big Query中运行大量查询以生成实时分析.调用大约需要两秒钟,并且有五个查询,这太长了,所以我研究了加快速度的方法,并认为异步运行查询将是一个可靠的改进.我的想法是,我可以同时插入五个查询,谷歌会做一些魔法同时运行它们,然后jobs.getQueryResults(jobId)用来获取每个作业的结果.我决定通过计算两个异步查询的执行时间并将其与同步运行的查询进行比较来验证理论.结果:

  • 同步:3.07秒(每个查询1.34秒和1.29秒)
  • 异步:2.39秒(每个插入0.52s和0.44s,再加上1.09s getQueryResults())

这只相差0.68秒.因此,尽管异步查询速度更快,他们没有实现的谷歌平行魔术的目标以减少总执行时间.所以第一个问题:并行魔术的期望是否正确?即使不是,我特别感兴趣的是谷歌的说法

异步查询通常在查询完成之前立即返回响应.

大约半秒插入查询不符合我的'立即'定义!我想乔丹或Big Query团队中的其他人将是唯一可以回答此事的人,但我欢迎任何答案!

编辑说明:

  1. 根据Mikhail Berlyant的建议,我收集了creationTime,startTimeendTime工作回复中发现:

    • creationTimestartTime:462ms,387ms(查询1和2的时间)
    • startTimeendTime:744毫秒,1005毫秒

虽然我不确定这是否会给故事增添任何内容,因为这是发布insert()和完成电话之间的时间,我很想知道.

  1. BQ的Jobs文档中,关于并行魔术的第一个问题的答案是肯定的:

您可以在BigQuery中同时运行多个作业

代码:

对于它的价值,我在本地和生产App Engine上进行了测试.本地速度减慢了约2-3倍,但复制了结果.在我的研究中,我也发现了分区表,我希望我之前知道(这可能最终成为我的解决方案),但这个问题依然存在.这是我的代码.我省略了实际的SQL,因为它们在这种情况下无关紧要:

    def test_sync(self, request):
    t0 = time.time()

    request = bigquery.jobs()
    data = { 'query': (sql) }
    response = request.query(projectId=project_id, body=data).execute()
    t1 = time.time() …
Run Code Online (Sandbox Code Playgroud)

python google-app-engine asynchronous google-bigquery google-api-python-client

1
推荐指数
1
解决办法
2401
查看次数